7#ifndef PXR_USD_IMAGING_USD_IMAGING_COLLECTION_CACHE_H
8#define PXR_USD_IMAGING_USD_IMAGING_COLLECTION_CACHE_H
13#include "pxr/usdImaging/usdImaging/api.h"
16#include <tbb/concurrent_unordered_map.h>
17#include <tbb/concurrent_queue.h>
19#include <unordered_map>
21PXR_NAMESPACE_OPEN_SCOPE
41class UsdImaging_CollectionCache {
43 UsdImaging_CollectionCache() =
default;
44 UsdImaging_CollectionCache(
const UsdImaging_CollectionCache&) =
delete;
45 UsdImaging_CollectionCache& operator=(
const UsdImaging_CollectionCache&) =
delete;
63 RemoveCollection(UsdStageWeakPtr
const& stage,
SdfPath const& path);
74 ComputeCollectionsContainingPath(
SdfPath const& path)
const;
80 GetDirtyPaths()
const;
98 std::unordered_map<Query, TfToken, Query::Hash> _idForQuery;
99 std::unordered_map<TfToken, Query, TfToken::HashFunctor> _queryForId;
100 std::unordered_map<SdfPath, TfToken, SdfPath::Hash> _idForPath;
101 std::unordered_map<Query, SdfPathSet, Query::Hash> _pathsForQuery;
104 _MarkCollectionContentDirty(
105 UsdStageWeakPtr
const& stage,
108 SdfPathSet _dirtyPaths;
114PXR_NAMESPACE_CLOSE_SCOPE
A path value used to locate objects in layers or scenegraphs.
Token for efficient comparison, assignment, and hashing of known strings.
A general purpose API schema used to describe a collection of prims and properties within a scene.
Represents a flattened view of a collection.
Represents an arbitrary dimensional rectangular container class.