7#ifndef PXR_IMAGING_HD_ST_INSTANCER_H
8#define PXR_IMAGING_HD_ST_INSTANCER_H
11#include "pxr/imaging/hdSt/api.h"
12#include "pxr/imaging/hd/changeTracker.h"
13#include "pxr/imaging/hd/instancer.h"
14#include "pxr/usd/sdf/path.h"
16#include "pxr/base/tf/hashmap.h"
18PXR_NAMESPACE_OPEN_SCOPE
22struct HdRprimSharedData;
24using HdBufferArrayRangeSharedPtr = std::shared_ptr<class HdBufferArrayRange>;
63 HdDirtyBits *dirtyBits)
override;
65 HdBufferArrayRangeSharedPtr GetInstancePrimvarRange()
const {
66 return _instancePrimvarRange;
92 void _GetInstanceIndices(
SdfPath const &prototypeId,
93 std::vector<VtIntArray> *instanceIndicesArray);
97 HdDirtyBits *dirtyBits);
103 size_t _instancePrimvarNumElements;
108 HdBufferArrayRangeSharedPtr _instancePrimvarRange;
115 bool _hasDisplayOpacity : 1;
116 bool _hasNormals : 1;
120PXR_NAMESPACE_CLOSE_SCOPE
Stores a 4x4 matrix of double elements.
This class exists to facilitate point cloud style instancing.
The HdRenderParam is an opaque (to core Hydra) handle, to an object that is obtained from the render ...
The render engine state for a given rprim from the scene graph.
Adapter class providing data exchange with the client scene graph.
HdSt implements instancing by drawing each proto multiple times with a single draw call.
HDST_API VtIntArray GetInstanceIndices(SdfPath const &prototypeId)
Populates the instance index indirection buffer for prototypeId and returns a flat array of instance ...
HDST_API bool HasDisplayOpacity() const
Returns whether "displayOpacity" is defined as an instance primvar.
HDST_API bool HasNormals() const
Returns whether "normals" is defined as an instance primvar.
HDST_API const GfMatrix4d & GetTransform() const
Returns the instancer (prim) transform.
HDST_API const GfMatrix4d & GetTransformInverse() const
Returns the instancer (prim) transform inverse.
HDST_API HdStInstancer(HdSceneDelegate *delegate, SdfPath const &id)
Constructor.
A path value used to locate objects in layers or scenegraphs.