24 #ifndef PXR_USD_IMAGING_USD_IMAGING_STAGE_SCENE_INDEX_H
25 #define PXR_USD_IMAGING_USD_IMAGING_STAGE_SCENE_INDEX_H
43 #define USDIMAGING_STAGE_SCENE_INDEX_TOKENS \
44 (includeUnloadedPrims) \
50 std::shared_ptr<class UsdImagingPrimAdapter>;
51 class UsdImaging_AdapterManager;
58 static UsdImagingStageSceneIndexRefPtr
New(
59 HdContainerDataSourceHandle
const &inputArgs =
nullptr) {
108 void _ApplyPendingResyncs();
109 void _ComputeDirtiedEntries(
110 const std::map<SdfPath, TfTokenVector> &pathToUsdProperties,
119 void FlagAsTimeVarying(
123 void FlagAsAssetPathDependent(
124 const SdfPath & usdPath)
const override;
132 void RemoveAssetPathDependentsUnder(
const SdfPath &
path);
134 void InvalidateAssetPathDependentsUnder(
136 std::vector<SdfPath> *primsToInvalidate,
137 std::map<SdfPath, TfTokenVector> *propertiesToInvalidate)
const;
142 struct _PathHashCompare {
146 static size_t hash(
const SdfPath &p) {
150 using _VariabilityMap = tbb::concurrent_hash_map<
SdfPath,
152 mutable _VariabilityMap _timeVaryingLocators;
154 using _AssetPathDependentsSet = std::set<SdfPath>;
155 mutable _AssetPathDependentsSet _assetPathDependents;
156 mutable std::mutex _assetPathDependentsMutex;
161 const bool _includeUnloadedPrims;
163 UsdStageRefPtr _stage;
164 _StageGlobals _stageGlobals;
168 void _PopulateSubtree(
UsdPrim subtreeRoot);
178 std::map<SdfPath, TfTokenVector> _usdPropertiesToUpdate;
179 std::map<SdfPath, TfTokenVector> _usdPropertiesToResync;
181 using _PrimAdapterPair = std::pair<UsdPrim, UsdImagingPrimAdapterSharedPtr>;
182 _PrimAdapterPair _FindResponsibleAncestor(
const UsdPrim &prim)
const;
184 std::unique_ptr<UsdImaging_AdapterManager>
const _adapterManager;
USDIMAGING_API void SetStage(UsdStageRefPtr stage)
TfRefPtr< T > TfCreateRefPtr(T *ptr)
GT_API const UT_StringHolder time
GLsizei const GLchar *const * path
USDIMAGING_API void SetTime(UsdTimeCode time, bool forceDirtyingTimeDeps=false)
#define USDIMAGING_STAGE_SCENE_INDEX_TOKENS
GLboolean GLboolean GLboolean GLboolean a
IMATH_HOSTDEVICE constexpr bool equal(T1 a, T2 b, T3 t) IMATH_NOEXCEPT
USDIMAGING_API SdfPathVector GetChildPrimPaths(const SdfPath &primPath) const override
UsdStagePtr UsdStageWeakPtr
TF_DECLARE_PUBLIC_TOKENS(UsdImagingStageSceneIndexTokens, USDIMAGING_API, USDIMAGING_STAGE_SCENE_INDEX_TOKENS)
GLboolean GLboolean GLboolean b
std::vector< class SdfPath > SdfPathVector
A vector of SdfPaths.
PXR_NAMESPACE_CLOSE_SCOPE PXR_NAMESPACE_OPEN_SCOPE
USDIMAGING_API ~UsdImagingStageSceneIndex()
#define PXR_NAMESPACE_CLOSE_SCOPE
USDIMAGING_API HdSceneIndexPrim GetPrim(const SdfPath &primPath) const override
std::shared_ptr< UsdImagingPrimAdapter > UsdImagingPrimAdapterSharedPtr
USDIMAGING_API UsdTimeCode GetTime() const
static UsdImagingStageSceneIndexRefPtr New(HdContainerDataSourceHandle const &inputArgs=nullptr)
USDIMAGING_API void ApplyPendingUpdates()
size_t hash_value(const CH_ChannelRef &ref)
UsdImagingPropertyInvalidationType
TF_DECLARE_REF_PTRS(UsdImagingStageSceneIndex)