7 #ifndef PXR_IMAGING_HDSI_MATERIAL_OVERRIDE_RESOLVING_SCENE_INDEX_H
8 #define PXR_IMAGING_HDSI_MATERIAL_OVERRIDE_RESOLVING_SCENE_INDEX_H
17 #include <unordered_map>
18 #include <unordered_set>
22 using PathSet = std::unordered_set<SdfPath, SdfPath::Hash>;
184 using PrimDataMap = std::unordered_map<SdfPath, PrimData, SdfPath::Hash>;
185 using MaterialPathsMap = std::unordered_map<SdfPath, PathSet, SdfPath::Hash>;
186 using MaterialDataMap = std::unordered_map<
SdfPath, MaterialData,
188 using HashToMaterialPathMap = std::unordered_map<uint64_t, SdfPath>;
189 using MaterialHashMap = std::unordered_map<
SdfPath, HashToMaterialPathMap,
193 static HdsiMaterialOverrideResolvingSceneIndexRefPtr
New(
194 const HdSceneIndexBaseRefPtr &inputScene)
211 const HdSceneIndexBaseRefPtr &inputScene);
230 const SdfPath& primPath)
const;
264 void _DirtyBaseMaterial(
266 const PathSet& generatedMaterials,
283 const HdSceneIndexBaseRefPtr inputScene,
284 const PrimData& primData,
297 void _DirtyMaterialOverrideLocator(
299 const HdSceneIndexBaseRefPtr inputScene,
309 bool _IsGeneratedMaterial(
const SdfPath& primPath)
const;
313 void _CreateGeneratedMaterialDataSource(
315 const SdfPath& primPath)
const;
322 void _InvalidateMaps(
const SdfPath& primPath);
344 uint64_t materialOverrideHash;
350 MaterialPathsMap _scopeToNewMaterialPaths;
353 MaterialPathsMap _oldToNewMaterialPaths;
359 PrimDataMap _primData;
363 MaterialDataMap _materialData;
375 MaterialHashMap _materialHashMap;
380 #endif // PXR_IMAGING_HDSI_MATERIAL_OVERRIDE_RESOLVING_SCENE_INDEX_H
TfRefPtr< T > TfCreateRefPtr(T *ptr)
#define PXR_NAMESPACE_OPEN_SCOPE
void _PrimsRemoved(const HdSceneIndexBase &sender, const HdSceneIndexObserver::RemovedPrimEntries &entries) override
HDSI_API SdfPathVector GetChildPrimPaths(const SdfPath &primPath) const override
HDSI_API HdSceneIndexPrim GetPrim(const SdfPath &primPath) const override
std::unordered_set< SdfPath, SdfPath::Hash > PathSet
std::vector< class SdfPath > SdfPathVector
static HdsiMaterialOverrideResolvingSceneIndexRefPtr New(const HdSceneIndexBaseRefPtr &inputScene)
HDSI_API HdsiMaterialOverrideResolvingSceneIndex(const HdSceneIndexBaseRefPtr &inputScene)
void _PrimsDirtied(const HdSceneIndexBase &sender, const HdSceneIndexObserver::DirtiedPrimEntries &entries) override
#define PXR_NAMESPACE_CLOSE_SCOPE
TF_DECLARE_WEAK_AND_REF_PTRS(HdsiMaterialOverrideResolvingSceneIndex)
void _PrimsAdded(const HdSceneIndexBase &sender, const HdSceneIndexObserver::AddedPrimEntries &entries) override