7 #ifndef PXR_IMAGING_HD_SCENE_INDEX_ADAPTER_SCENE_DELEGATE_H 
    8 #define PXR_IMAGING_HD_SCENE_INDEX_ADAPTER_SCENE_DELEGATE_H 
   14 #include <tbb/concurrent_unordered_map.h> 
   32             HdSceneIndexBaseRefPtr inputSceneIndex,
 
   43         HdSceneIndexBaseRefPtr inputSceneIndex, 
SdfPath const &delegateID);
 
   81             SdfPath const &volumeId) 
override;
 
   88         float *sampleTimes, 
GfMatrix4d *sampleValues) 
override;
 
   90         float startTime, 
float endTime,
 
   91         size_t maxSampleCount,
 
   92         float *sampleTimes, 
GfMatrix4d *sampleValues) 
override;
 
   95         SdfPath const &instancerId) 
override;
 
   97         size_t maxSampleCount, 
float *sampleTimes,
 
  100         float startTime, 
float endTime,
 
  101         size_t maxSampleCount, 
float *sampleTimes,
 
  113             VtIntArray *outIndices) 
override;
 
  116             size_t maxSampleCount, 
float *sampleTimes, 
 
  117             VtValue *sampleValues) 
override;
 
  119             float startTime, 
float endTime,
 
  120             size_t maxSampleCount, 
float *sampleTimes, 
 
  121             VtValue *sampleValues) 
override;
 
  124             VtIntArray *sampleIndices) 
override;
 
  126             float startTime, 
float endTime,                                
 
  127             size_t maxNumSamples, 
float *times, 
VtValue *samples, 
 
  128             VtIntArray *sampleIndices) 
override;
 
  134         SdfPath const &instancerId) 
override;
 
  162         TfToken const ¶mName) 
override;
 
  168         TfToken const ¶mName) 
override;
 
  180         SdfPath const &computationId) 
override;
 
  186         size_t maxSampleCount,
 
  188         VtValue *sampleValues) 
override;
 
  194         size_t maxSampleCount,
 
  196         VtValue *sampleValues) 
override;
 
  199         SdfPath const &computationId) 
override;
 
  201         SdfPath const &computationId) 
override;
 
  225     using _InputPrimCacheEntry = std::pair<SdfPath, HdSceneIndexPrim>;
 
  229         std::hash<std::thread::id> > _inputPrimCache;
 
  236         VtIntArray *outIndices);
 
  239         const HdContainerDataSourceHandle &primvarsDataSource, 
 
  241         VtIntArray *outIndices);
 
  248         float startTime, 
float endTime,
 
  249         size_t maxNumSamples, 
float *times, 
VtValue *samples, 
 
  250         VtIntArray *sampleIndices);
 
  252     HdSceneIndexBaseRefPtr _inputSceneIndex;
 
  254     struct _PrimCacheEntry
 
  258         using PrimvarDescriptorsArray =
 
  259             std::array<HdPrimvarDescriptorVector, HdInterpolationCount>;
 
  260         std::shared_ptr<PrimvarDescriptorsArray> primvarDescriptors;
 
  261         using ExtCmpPrimvarDescriptorsArray =
 
  264         std::shared_ptr<ExtCmpPrimvarDescriptorsArray> extCmpPrimvarDescriptors;
 
  270     std::shared_ptr<_PrimCacheEntry::PrimvarDescriptorsArray>
 
  271         _ComputePrimvarDescriptors(
 
  272             const HdContainerDataSourceHandle &primDataSource);
 
  273     std::shared_ptr<_PrimCacheEntry::ExtCmpPrimvarDescriptorsArray>
 
  274         _ComputeExtCmpPrimvarDescriptors(
 
  275             const HdContainerDataSourceHandle &primDataSource);
 
  277     bool _sceneDelegatesBuilt;
 
  278     std::vector<HdSceneDelegate*> _sceneDelegates;
 
std::shared_ptr< SdfPathVector > HdIdVectorSharedPtr
A shared pointer to a vector of id's. 
 
GfMatrix4d GetInstancerTransform(SdfPath const &instancerId) override
Returns the instancer transform. 
 
~HdSceneIndexAdapterSceneDelegate() override
 
VtValue Get(SdfPath const &id, TfToken const &key) override
Returns a named value. 
 
void PrimsDirtied(const HdSceneIndexBase &sender, const DirtiedPrimEntries &entries) override
 
HdIdVectorSharedPtr GetCoordSysBindings(SdfPath const &id) override
Returns the coordinate system bindings, or a nullptr if none are bound. 
 
VtIntArray GetInstanceIndices(SdfPath const &instancerId, SdfPath const &prototypeId) override
 
size_t SampleTransform(SdfPath const &id, size_t maxSampleCount, float *sampleTimes, GfMatrix4d *sampleValues) override
 
HdExtComputationOutputDescriptorVector GetExtComputationOutputDescriptors(SdfPath const &computationId) override
 
SdfPath GetDataSharingId(SdfPath const &primId) override
 
VtValue GetLightParamValue(SdfPath const &id, TfToken const ¶mName) override
 
std::vector< HdExtComputationInputDescriptor > HdExtComputationInputDescriptorVector
 
HdPrimvarDescriptorVector GetPrimvarDescriptors(SdfPath const &id, HdInterpolation interpolation) override
Returns descriptors for all primvars of the given interpolation type. 
 
HdBasisCurvesTopology GetBasisCurvesTopology(SdfPath const &id) override
Gets the topological curve data for a given prim. 
 
std::vector< HdExtComputationOutputDescriptor > HdExtComputationOutputDescriptorVector
 
HdVolumeFieldDescriptorVector GetVolumeFieldDescriptors(SdfPath const &volumeId) override
 
VtValue GetShadingStyle(SdfPath const &id) override
Returns the shading style for the given prim. 
 
void PrimsRemoved(const HdSceneIndexBase &sender, const RemovedPrimEntries &entries) override
 
SdfPath GetInstancerId(SdfPath const &primId) override
Returns the parent instancer of the given rprim or instancer. 
 
void Sync(HdSyncRequestVector *request) override
Synchronizes the delegate state for the given request vector. 
 
std::string GetExtComputationKernel(SdfPath const &computationId) override
 
std::vector< VtArray< TfToken > > GetInstanceCategories(SdfPath const &instancerId) override
Returns the categories for each of the instances in the instancer. 
 
VtValue GetMaterialResource(SdfPath const &id) override
Returns the material ID bound to the rprim rprimId. 
 
GfMatrix4d GetTransform(SdfPath const &id) override
Returns the object space transform, including all parent transforms. 
 
void PostSyncCleanup() override
 
size_t SamplePrimvar(SdfPath const &id, TfToken const &key, size_t maxSampleCount, float *sampleTimes, VtValue *sampleValues) override
 
VtValue GetExtComputationInput(SdfPath const &computationId, TfToken const &input) override
 
size_t SampleInstancerTransform(SdfPath const &instancerId, size_t maxSampleCount, float *sampleTimes, GfMatrix4d *sampleValues) override
 
std::vector< class SdfPath > SdfPathVector
 
HdDisplayStyle GetDisplayStyle(SdfPath const &id) override
Returns the display style for the given prim. 
 
void PrimsAdded(const HdSceneIndexBase &sender, const AddedPrimEntries &entries) override
 
HdCullStyle GetCullStyle(SdfPath const &id) override
Returns the cullstyle for the given prim. 
 
GfRange3d GetExtent(SdfPath const &id) override
 
VtValue GetIndexedPrimvar(SdfPath const &id, TfToken const &key, VtIntArray *outIndices) override
 
size_t SampleIndexedPrimvar(SdfPath const &id, TfToken const &key, size_t maxNumSamples, float *times, VtValue *samples, VtIntArray *sampleIndices) override
 
HdExtComputationInputDescriptorVector GetExtComputationInputDescriptors(SdfPath const &computationId) override
 
void PrimsRenamed(const HdSceneIndexBase &sender, const RenamedPrimEntries &entries) override
 
std::vector< TfToken > TfTokenVector
Convenience types. 
 
HdSceneIndexAdapterSceneDelegate(HdSceneIndexBaseRefPtr inputSceneIndex, HdRenderIndex *parentIndex, SdfPath const &delegateID)
 
std::vector< HdVolumeFieldDescriptor > HdVolumeFieldDescriptorVector
 
HdRenderBufferDescriptor GetRenderBufferDescriptor(SdfPath const &id) override
Returns the allocation descriptor for a given render buffer prim. 
 
static HdSceneIndexBaseRefPtr AppendDefaultSceneFilters(HdSceneIndexBaseRefPtr inputSceneIndex, SdfPath const &delegateID)
 
VtArray< TfToken > GetCategories(SdfPath const &id) override
 
PXR_NAMESPACE_CLOSE_SCOPE PXR_NAMESPACE_OPEN_SCOPE
 
void InvokeExtComputation(SdfPath const &computationId, HdExtComputationContext *context) override
 
bool GetVisible(SdfPath const &id) override
Returns the authored visible state of the prim. 
 
PxOsdSubdivTags GetSubdivTags(SdfPath const &id) override
Gets the subdivision surface tags (sharpness, holes, etc). 
 
#define PXR_NAMESPACE_CLOSE_SCOPE
 
TfTokenVector GetTaskRenderTags(SdfPath const &taskId) override
 
SdfPath GetMaterialId(SdfPath const &id) override
Returns the material ID bound to the rprim rprimId. 
 
TfTokenVector GetExtComputationSceneInputNames(SdfPath const &computationId) override
 
std::vector< HdPrimvarDescriptor > HdPrimvarDescriptorVector
 
TfToken GetRenderTag(SdfPath const &id) override
 
bool GetDoubleSided(SdfPath const &id) override
Returns the doubleSided state for the given prim. 
 
HdExtComputationPrimvarDescriptorVector GetExtComputationPrimvarDescriptors(SdfPath const &id, HdInterpolation interpolationMode) override
 
SdfPathVector GetInstancerPrototypes(SdfPath const &instancerId) override
 
VtValue GetCameraParamValue(SdfPath const &cameraId, TfToken const ¶mName) override
 
HdMeshTopology GetMeshTopology(SdfPath const &id) override
Gets the topological mesh data for a given prim. 
 
size_t SampleExtComputationInput(SdfPath const &computationId, TfToken const &input, size_t maxSampleCount, float *sampleTimes, VtValue *sampleValues) override
 
std::vector< HdExtComputationPrimvarDescriptor > HdExtComputationPrimvarDescriptorVector
 
HdReprSelector GetReprSelector(SdfPath const &id) override
Returns the authored repr (if any) for the given prim.