24 #ifndef EXT_RMANPKG_24_0_PLUGIN_RENDERMAN_PLUGIN_HD_PRMAN_VOLUME_H
25 #define EXT_RMANPKG_24_0_PLUGIN_RENDERMAN_PLUGIN_HD_PRMAN_VOLUME_H
28 #include "hdPrman/gprim.h"
29 #include "pxr/imaging/hd/field.h"
30 #include "pxr/imaging/hd/volume.h"
31 #include "pxr/imaging/hd/enums.h"
32 #include "pxr/imaging/hd/vertexAdjacency.h"
37 PXR_NAMESPACE_OPEN_SCOPE
39 class HdPrman_Field final :
public HdField {
44 HdDirtyBits *dirtyBits)
override;
55 HF_MALLOC_TAG_NEW(
"new HdPrman_Volume");
56 HdPrman_Volume(
SdfPath const&
id);
57 virtual HdDirtyBits GetInitialDirtyBitsMask()
const override;
76 using HdPrman_VolumeTypeEmitter =
79 HdVolumeFieldDescriptorVector
const& fields,
80 RtPrimVarList* primvars);
85 static bool AddVolumeTypeEmitter(
TfToken const& fieldPrimType,
86 HdPrman_VolumeTypeEmitter emitterFunc,
87 bool overrideExisting =
false);
107 static void DeclareFieldPrimvar(RtPrimVarList* primvars,
108 RtUString
const& fieldName,
112 virtual RtPrimVarList
113 _ConvertGeometry(HdPrman_Context *context,
117 std::vector<HdGeomSubset> *geomSubsets)
override;
119 virtual riley::MaterialId
120 _GetFallbackMaterial(HdPrman_Context *context)
override {
121 return context->fallbackVolumeMaterial;
124 using _VolumeEmitterMap = std::map<TfToken, HdPrman_VolumeTypeEmitter>;
125 static _VolumeEmitterMap& _GetVolumeEmitterMap();
128 PXR_NAMESPACE_CLOSE_SCOPE
130 #endif // EXT_RMANPKG_24_0_PLUGIN_RENDERMAN_PLUGIN_HD_PRMAN_VOLUME_H
virtual HdDirtyBits GetInitialDirtyBitsMask() const =0
Returns the minimal set of dirty bits to place in the change tracker for use in the first sync of thi...
The HdRenderParam is an opaque (to core Hydra) handle, to an object that is obtained from the render ...
virtual void Sync(HdSceneDelegate *sceneDelegate, HdRenderParam *renderParam, HdDirtyBits *dirtyBits)=0
Synchronizes state from the delegate to this object.
Token for efficient comparison, assignment, and hashing of known strings.
Hydra schema for a USD field primitive.
Adapter class providing data exchange with the client scene graph.
A mix-in template that adds shared gprim behavior to support various HdRprim types.
A path value used to locate objects in layers or scenegraphs.
virtual HD_API void Finalize(HdRenderParam *renderParam)
Finalizes object resources.