7#ifndef PXR_EXEC_VDF_TYPES_H
8#define PXR_EXEC_VDF_TYPES_H
14#include "pxr/exec/vdf/api.h"
15#include "pxr/exec/vdf/defaultInitAllocator.h"
19#include "pxr/base/tf/hashmap.h"
20#include "pxr/base/tf/hashset.h"
25#include <unordered_map>
28PXR_NAMESPACE_OPEN_SCOPE
90 TfHashMap<const VdfNode *, VdfOutputPtrSet, TfHash>
94typedef TfHashMap<const VdfNode *, VdfInputPtrVector, TfHash>
98typedef TfHashMap<const VdfNode *, VdfOutputPtrVector, TfHash>
103 std::unordered_map<const VdfOutput *, VdfMask, TfHash>
124PXR_NAMESPACE_CLOSE_SCOPE
This is a small-vector class with local storage optimization, the local storage can be specified via ...
A class that fully represents a connection between two VdfNodes.
A VdfMask is placed on connections to specify the data flowing through them.
This is the base class for all nodes in a VdfNetwork.
A VdfOutput represents an output on a node.
std::function< std::string()> VdfNodeDebugNameCallback
Type of callback for building a node debug name.
std::function< void(const VdfOutput *, const VdfMask &)> VdfScheduledOutputCallback
Function type to be used with ForEachScheduledOutput().
std::vector< VdfId > VdfIdVector
A vector of ids.
TfHashSet< const VdfNode *, TfHash > VdfNodePtrSet
Type for an unordered set of nodes pointers.
std::vector< VdfConnectionAndMask > VdfConnectionAndMaskVector
A vector of VdfConnectionAndMasks.
TfSmallVector< VdfConnection *, 1 > VdfConnectionVector
Type for an ordered collection of connections.
TfSmallVector< const VdfConnection *, 1 > VdfConnectionConstVector
Type for an ordered collection of connections.
TfHashSet< const VdfConnection *, TfHash > VdfConnectionConstSet
Type for an unordered set of connections.
uint64_t VdfId
The unique identifier type for Vdf objects.
TfHashSet< const VdfInput *, TfHash > VdfInputPtrSet
Type for an unordered set of input pointers.
TfHashSet< const VdfOutput *, TfHash > VdfOutputPtrSet
Type for an unordered set of output pointers.
TfHashMap< const VdfNode *, VdfOutputPtrSet, TfHash > VdfNodeToOutputPtrSetMap
A map from node pointer to VdfOutputPtrSet.
TfHashMap< const VdfNode *, VdfOutputPtrVector, TfHash > VdfNodeToOutputPtrVectorMap
A map from node pointer to VdfInputPtrVector.
unsigned int VdfInvalidationTimestamp
Type of the timestamp that identifies the most recent round of invalidation.
std::function< void(const VdfNode &)> VdfNodeCallback
Type of callback used when processing nodes.
uint32_t VdfIndex
The index type for Vdf objects.
std::unordered_map< const VdfOutput *, VdfMask, TfHash > VdfOutputToMaskMap
A map from output pointer to mask.
std::vector< const VdfOutput * > VdfOutputPtrVector
Type for an ordered collection of outputs.
std::vector< T, Vdf_DefaultInitAllocator< T > > Vdf_DefaultInitVector
A std::vector which on resize performs default initialization instead of value initialization.
std::vector< const VdfInput * > VdfInputPtrVector
Type for an ordered collection of inputs.
uint32_t VdfVersion
The version type for Vdf objects.
TfHashSet< VdfConnection *, TfHash > VdfConnectionSet
Type for an unordered set of connections.
VDF_API bool VdfIsParallelEvaluationEnabled()
Returns true if single-frame parallel evaluation is enabled.
std::pair< VdfConnection *, VdfMask > VdfConnectionAndMask
A pair of connection pointer and mask for sparse input dependency computation.
TfHashMap< const VdfNode *, VdfInputPtrVector, TfHash > VdfNodeToInputPtrVectorMap
A map from node pointer to VdfInputPtrVector.