7 #ifndef PXR_IMAGING_HD_FLATTENING_SCENE_H
8 #define PXR_IMAGING_HD_FLATTENING_SCENE_H
15 #include <tbb/concurrent_hash_map.h>
16 #include <tbb/concurrent_vector.h>
21 std::shared_ptr<class HdFlattenedDataSourceProvider>;
23 std::vector<HdFlattenedDataSourceProviderSharedPtr>;
25 namespace HdFlatteningSceneIndex_Impl
38 class _PrimLevelWrappingDataSource;
63 static HdFlatteningSceneIndexRefPtr
New(
64 HdSceneIndexBaseRefPtr
const &inputScene,
65 HdContainerDataSourceHandle
const &inputArgs) {
83 return _dataSourceNames;
89 return _dataSourceProviders;
96 HdSceneIndexBaseRefPtr
const &inputScene,
97 HdContainerDataSourceHandle
const &inputArgs);
119 void _ConsolidateRecentPrims();
121 using _AdditionalDirtiedVector =
122 tbb::concurrent_vector<HdSceneIndexObserver::DirtiedPrimEntry>;
124 void _DirtyHierarchy(
128 _AdditionalDirtiedVector *additionalDirty)
const;
132 _AdditionalDirtiedVector *additionalDirty)
const;
152 struct _PathHashCompare {
160 using _RecentPrimTable =
161 tbb::concurrent_hash_map<SdfPath, HdSceneIndexPrim, _PathHashCompare>;
162 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
#define PXR_NAMESPACE_OPEN_SCOPE
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
std::vector< class SdfPath > SdfPathVector
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
const TfTokenVector & GetFlattenedDataSourceNames() const
Data sources under locator name in a prim source get flattened.
TfSmallVector< HdDataSourceLocatorSet, _smallVectorSize > _DataSourceLocatorSetVector
#define PXR_NAMESPACE_CLOSE_SCOPE
friend class HdFlatteningSceneIndex_Impl::_PrimLevelWrappingDataSource
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)