24 #ifndef PXR_IMAGING_HD_FLATTENING_SCENE_H
25 #define PXR_IMAGING_HD_FLATTENING_SCENE_H
32 #include <tbb/concurrent_hash_map.h>
37 std::shared_ptr<class HdFlattenedDataSourceProvider>;
39 std::vector<HdFlattenedDataSourceProviderSharedPtr>;
41 namespace HdFlatteningSceneIndex_Impl
70 static HdFlatteningSceneIndexRefPtr
New(
71 HdSceneIndexBaseRefPtr
const &inputScene,
72 HdContainerDataSourceHandle
const &inputArgs) {
90 return _dataSourceNames;
96 return _dataSourceProviders;
103 HdSceneIndexBaseRefPtr
const &inputScene,
104 HdContainerDataSourceHandle
const &inputArgs);
120 using _DataSourceLocatorSetVector =
124 void _ConsolidateRecentPrims();
126 void _DirtyHierarchy(
128 const _DataSourceLocatorSetVector &relativeDirtyLocators,
148 _DataSourceLocatorSetVector _relativeDataSourceLocators;
154 struct _PathHashCompare {
162 using _RecentPrimTable =
163 tbb::concurrent_hash_map<SdfPath, HdSceneIndexPrim, _PathHashCompare>;
164 mutable _RecentPrimTable _recentPrims;
TfRefPtr< T > TfCreateRefPtr(T *ptr)
void _PrimsAdded(const HdSceneIndexBase &sender, const HdSceneIndexObserver::AddedPrimEntries &entries) override
void _PrimsRemoved(const HdSceneIndexBase &sender, const HdSceneIndexObserver::RemovedPrimEntries &entries) override
GLsizei const GLchar *const * path
GLboolean GLboolean GLboolean GLboolean a
IMATH_HOSTDEVICE constexpr bool equal(T1 a, T2 b, T3 t) IMATH_NOEXCEPT
std::shared_ptr< class HdFlattenedDataSourceProvider > HdFlattenedDataSourceProviderSharedPtr
HD_API SdfPathVector GetChildPrimPaths(const SdfPath &primPath) const override
void _PrimsDirtied(const HdSceneIndexBase &sender, const HdSceneIndexObserver::DirtiedPrimEntries &entries) override
TF_DECLARE_REF_PTRS(HdFlatteningSceneIndex)
HD_API HdSceneIndexPrim GetPrim(const SdfPath &primPath) const override
HD_API HdFlatteningSceneIndex(HdSceneIndexBaseRefPtr const &inputScene, HdContainerDataSourceHandle const &inputArgs)
const HdFlattenedDataSourceProviderSharedPtrVector & GetFlattenedDataSourceProviders() const
Providers in the same order as GetFlattenedDataSourceNames.
std::vector< HdFlattenedDataSourceProviderSharedPtr > HdFlattenedDataSourceProviderSharedPtrVector
std::vector< TfToken > TfTokenVector
Convenience types.
GLboolean GLboolean GLboolean b
std::vector< class SdfPath > SdfPathVector
A vector of SdfPaths.
const TfTokenVector & GetFlattenedDataSourceNames() const
Data sources under locator name in a prim source get flattened.
TfSmallVector< HdDataSourceLocatorSet, _smallVectorSize > _DataSourceLocatorSetVector
PXR_NAMESPACE_CLOSE_SCOPE PXR_NAMESPACE_OPEN_SCOPE
#define PXR_NAMESPACE_CLOSE_SCOPE
static HdFlatteningSceneIndexRefPtr New(HdSceneIndexBaseRefPtr const &inputScene, HdContainerDataSourceHandle const &inputArgs)
HD_API ~HdFlatteningSceneIndex() override
constexpr uint32_t _smallVectorSize
size_t hash_value(const CH_ChannelRef &ref)