7 #ifndef PXR_EXEC_VDF_NETWORK_UTIL_H
8 #define PXR_EXEC_VDF_NETWORK_UTIL_H
53 bool *foundSpecNode =
nullptr);
73 template <
class Callable>
82 std::vector<const VdfNode *> stack(1, &startNode);
85 while (!stack.empty()) {
93 if (visited.IsSet(idx)) {
100 if (std::forward<Callable>(callback)(*top)) {
101 for (
const std::pair<TfToken, VdfInput *> &i :
104 stack.push_back(&
c->GetSourceNode());
const InputMapIterator GetInputsIterator() const
#define PXR_NAMESPACE_OPEN_SCOPE
VDF_API bool VdfIsSpeculating(const VdfMaskedOutput &maskedOutput)
VDF_API bool VdfIsTopologicalSourceNode(const VdfNode &startNode, const VdfNode &nodeToFind, bool *foundSpecNode=nullptr)
Fast bit array that keeps track of the number of bits set and can find the next set in a timely manne...
void VdfTraverseTopologicalSourceNodes(const VdfNode &startNode, Callable &&callback)
const VdfNetwork & GetNetwork() const
static VdfIndex GetIndexFromId(const VdfId id)
VDF_API void VdfEmptyNodeCallback(const VdfNode &)
Class to hold on to an externally owned output and a mask.
#define PXR_NAMESPACE_CLOSE_SCOPE
VDF_API const VdfOutput * VdfGetAssociatedSourceOutput(const VdfOutput &output)
GLdouble GLdouble GLdouble top
size_t GetNodeCapacity() const
uint32_t VdfIndex
The index type for Vdf objects.