10 #include <pxr/imaging/hd/sceneDelegate.h>
11 #include <pxr/usd/sdf/assetPath.h>
15 #if PXR_VERSION < 2108
26 HdCyclesVolumeLoader(
const std::string &filePath,
const std::string &gridName)
31 const bool delay_load =
false;
32 openvdb::io::File
file(filePath);
33 file.setCopyMaxBytes(0);
34 if (
file.open(delay_load)) {
35 grid =
file.readGrid(gridName);
51 return DirtyBits::DirtyParams;
55 HdRenderParam *renderParam,
56 HdDirtyBits *dirtyBits)
60 const SdfPath &
id = GetId();
62 if (*dirtyBits & DirtyBits::DirtyParams) {
63 value = sceneDelegate->Get(
id, HdFieldTokens->filePath);
64 if (value.IsHolding<SdfAssetPath>()) {
65 std::string filename = value.UncheckedGet<SdfAssetPath>().GetResolvedPath();
66 if (filename.empty()) {
67 filename = value.UncheckedGet<SdfAssetPath>().GetAssetPath();
70 # if PXR_VERSION >= 2108
71 value = sceneDelegate->Get(
id, HdFieldTokens->fieldName);
73 value = sceneDelegate->Get(
id, _tokens->fieldName);
75 if (value.IsHolding<TfToken>()) {
76 ImageLoader *
const loader =
new HdCyclesVolumeLoader(
77 filename, value.UncheckedGet<TfToken>().GetString());
84 _handle =
lock.scene->image_manager->add_image(loader,
params,
false);
90 *dirtyBits = DirtyBits::Clean;
~HdCyclesField() override
void Sync(PXR_NS::HdSceneDelegate *sceneDelegate, PXR_NS::HdRenderParam *renderParam, PXR_NS::HdDirtyBits *dirtyBits) override
HdCyclesField(const PXR_NS::SdfPath &bprimId, const PXR_NS::TfToken &typeId)
PXR_NS::HdDirtyBits GetInitialDirtyBitsMask() const override
HDCYCLES_NAMESPACE_OPEN_SCOPE TF_DEFINE_PRIVATE_TOKENS(_tokens,(fieldName))
#define HDCYCLES_NAMESPACE_CLOSE_SCOPE