24#ifndef PXR_USD_IMAGING_USD_IMAGING_COLLECTION_CACHE_H
25#define PXR_USD_IMAGING_USD_IMAGING_COLLECTION_CACHE_H
30#include "pxr/usdImaging/usdImaging/api.h"
33#include <tbb/concurrent_unordered_map.h>
34#include <tbb/concurrent_queue.h>
36#include <unordered_map>
38PXR_NAMESPACE_OPEN_SCOPE
58class UsdImaging_CollectionCache {
60 UsdImaging_CollectionCache() =
default;
61 UsdImaging_CollectionCache(
const UsdImaging_CollectionCache&) =
delete;
62 UsdImaging_CollectionCache& operator=(
const UsdImaging_CollectionCache&) =
delete;
80 RemoveCollection(UsdStageWeakPtr
const& stage,
SdfPath const& path);
91 ComputeCollectionsContainingPath(
SdfPath const& path)
const;
97 GetDirtyPaths()
const;
115 std::unordered_map<Query, TfToken, Query::Hash> _idForQuery;
116 std::unordered_map<TfToken, Query, TfToken::HashFunctor> _queryForId;
117 std::unordered_map<SdfPath, TfToken, SdfPath::Hash> _idForPath;
118 std::unordered_map<Query, SdfPathSet, Query::Hash> _pathsForQuery;
121 _MarkCollectionContentDirty(
122 UsdStageWeakPtr
const& stage,
125 SdfPathSet _dirtyPaths;
131PXR_NAMESPACE_CLOSE_SCOPE
A path value used to locate objects in layers or scenegraphs.
Token for efficient comparison, assignment, and hashing of known strings.
This is a general purpose API schema, used to describe a collection of heterogeneous objects within t...
Represents a flattened view of a collection.
Represents an arbitrary dimensional rectangular container class.