7 #ifndef PXR_EXEC_EF_LEAF_NODE_INDEXER_H
8 #define PXR_EXEC_EF_LEAF_NODE_INDEXER_H
17 #include <tbb/concurrent_queue.h>
18 #include <tbb/concurrent_unordered_map.h>
19 #include <tbb/concurrent_vector.h>
61 return index < _nodes.size() ? _nodes[
index].node :
nullptr;
68 return index < _nodes.size() ? _nodes[
index].output :
nullptr;
75 return index < _nodes.size() ? _nodes[
index].mask :
nullptr;
104 tbb::concurrent_unordered_map<VdfIndex, Index> _indices;
108 tbb::concurrent_vector<_LeafNode> _nodes;
112 tbb::concurrent_queue<Index> _freeList;
120 return it != _indices.end() ? it->second :
InvalidIndex;
void DidConnect(const VdfConnection &connection)
void DidDisconnect(const VdfConnection &connection)
const VdfMask * GetSourceMask(Index index) const
#define PXR_NAMESPACE_OPEN_SCOPE
size_t GetCapacity() const
A VdfMask is placed on connections to specify the data flowing through them.
Index GetIndex(const VdfNode &node) const
static constexpr Index InvalidIndex
static VdfIndex GetIndexFromId(const VdfId id)
const VdfOutput * GetSourceOutput(Index index) const
#define PXR_NAMESPACE_CLOSE_SCOPE
const VdfNode * GetNode(Index index) const