Loading...
Searching...
No Matches
VdfRootNode Class Reference

Base class for root nodes. More...

#include <rootNode.h>

+ Inheritance diagram for VdfRootNode:

Static Public Member Functions

static bool IsARootNode (const VdfNode &node)
 Returns true if the given node is a VdfRootNode.
 
- Static Public Member Functions inherited from VdfNode
static VdfIndex GetIndexFromId (const VdfId id)
 Get the node index from the node id.
 
static VdfVersion GetVersionFromId (const VdfId id)
 Get the node version from the node id.
 

Protected Member Functions

 VdfRootNode (VdfNetwork *network, const VdfOutputSpecs &outputSpecs)
 Note that VdfRootNodes don't have inputs.
 
- Protected Member Functions inherited from VdfNode
VDF_API VdfNode (VdfNetwork *network)
 Protected constructor.
 
VDF_API void _AppendInputs (const VdfInputSpecs &inputSpecs, std::vector< VdfInput * > *resultingInputs=NULL)
 Builds inputs from the supplied input specs and appends them to the already-existing set of inputs, if any.
 
VDF_API void _AppendOutputs (const VdfOutputSpecs &outputSpecs, std::vector< VdfOutput * > *resultingOutputs=NULL)
 Builds outputs from the supplied output specs and appends them to the already-existing set of outputs, if any.
 
virtual VDF_API bool _IsDerivedEqual (const VdfNode &rhs) const
 Can be overridden by derived classes to facilitate equality comparision.
 
virtual VDF_API void _DidAddInputConnection (const VdfConnection *c, int atIndex)
 Notifies a node that one connection has been added.
 
virtual VDF_API void _WillRemoveInputConnection (const VdfConnection *c)
 Notifies a node that one connection will be removed.
 
virtual VDF_API ~VdfNode ()
 Protected Destructor.
 
void _SetId (const VdfVersion version, const VdfIndex index)
 Sets the node id.
 
virtual VDF_API VdfMask _ComputeOutputDependencyMask (const VdfConnection &inputConnection, const VdfMask &inputDependencyMask, const VdfOutput &output) const
 Returns a mask that indicates which elements of the data that flows along output depend on the elements indicated by inputDependencyMask that flow in via inputConnection.
 
virtual VDF_API bool _ComputeOutputDependencyMasks (const VdfConnection &inputConnection, const VdfMask &inputDependencyMask, VdfMaskedOutputVector *outputDependencies) const
 Vectorized version of _ComputeOutputDependencyMask.
 
virtual VDF_API VdfConnectionAndMaskVector _ComputeInputDependencyRequest (const VdfMaskedOutputVector &request) const
 Vectorized version of _ComputeOutputDependencyMasks.
 
virtual VDF_API VdfMask::Bits _ComputeInputDependencyMask (const VdfMaskedOutput &maskedOutput, const VdfConnection &inputConnection) const
 Returns a mask that indicates which elements of the data that flows along inputConnection are needed to compute the data flowing out as indicated by maskedOutput.
 
virtual VDF_API VdfConnectionAndMaskVector _ComputeInputDependencyMasks (const VdfMaskedOutput &maskedOutput, bool skipAssociatedInputs) const
 Vectorized version of _ComputeInputDependencyMask.
 
virtual VDF_API const VdfInputAndOutputSpecs_AcquireInputAndOutputSpecsPointer (const VdfInputSpecs &inputSpecs, const VdfOutputSpecs &outputSpecs)
 Gets an input/output specs pointer that the node can use.
 
virtual VDF_API void _ReleaseInputAndOutputSpecsPointer (const VdfInputAndOutputSpecs *specs)
 Releases an input/output specs pointer that was acquired with a previous call to _AcquireInputAndOutputSpecsPointer().
 
VDF_API void _InitializeInputAndOutputSpecs (const VdfInputAndOutputSpecs *specs)
 Initializes the input/output specs pointer for this node.
 
VDF_API void _ClearInputAndOutputSpecsPointer ()
 Clears the input/output specs pointer.
 
VDF_API void _ReplaceInputSpecs (const VdfInputSpecs &inputSpecs)
 Replaces the node's input specs with inputSpecs and rebuilds all inputs.
 

Additional Inherited Members

- Public Member Functions inherited from VdfNode
 TF_MALLOC_TAG_NEW ("Vdf", "new VdfNode")
 
VDF_API VdfNode (VdfNetwork *network, const VdfInputSpecs &inputSpecs, const VdfOutputSpecs &outputSpecs)
 Constructs a node in network with the inputs described by inputSpecs and outputs described by outputSpecs.
 
VdfId GetId () const
 Returns the unique id of this node in its network.
 
const VdfNetworkGetNetwork () const
 Returns the network to which this node belongs.
 
VdfNetworkGetNetwork ()
 Returns the network to which this node belongs.
 
template<typename TYPE >
bool IsA () const
 Returns true, if this node is of type TYPE.
 
VDF_API bool IsEqual (const VdfNode &rhs) const
 Returns true, if rhs and this node compute the same value(s).
 
const VdfInputSpecsGetInputSpecs () const
 Returns the list of input specs.
 
const VdfInputGetInput (const TfToken &inputName) const
 Returns the connector named inputName, returns NULL if no input of that name exists.
 
VDF_API VdfInputGetInput (const TfToken &inputName)
 Returns the input named inputName, returns NULL if no input of that name exists.
 
const InputMapIterator GetInputsIterator () const
 Returns an iterator class that can be used with TF_FOR_ALL to iterate through the inputs.
 
bool HasInputConnections () const
 Returns true if the node has input connections, false otherwise.
 
bool HasOutputConnections () const
 Returns true if the node has output connections, false otherwise.
 
VDF_API VdfConnectionVector GetInputConnections () const
 Returns a flat vector of all input connections.
 
VDF_API VdfConnectionVector GetOutputConnections () const
 Returns a flat vector of all output connections.
 
const VdfOutputSpecsGetOutputSpecs () const
 Returns the list of output specs.
 
const VdfOutputGetOutput (const TfToken &name) const
 Returns the output object named name.
 
VDF_API VdfOutputGetOutput (const TfToken &name)
 Returns the output object named name.
 
VDF_API VdfOutputGetOptionalOutput (const TfToken &name)
 Returns the output object named name.
 
const VdfOutputGetOptionalOutput (const TfToken &name) const
 Returns the output object named name.
 
const VdfOutputGetOutput () const
 Returns the only output object that this node contains.
 
VDF_API VdfOutputGetOutput ()
 Returns the only output object that this node contains.
 
const OutputMapIterator GetOutputsIterator () const
 Returns an iterator class that can be used with TF_FOR_ALL to iterator through the output connectors.
 
size_t GetNumOutputs () const
 Returns the number of outputs that this node currently has.
 
size_t GetNumInputs () const
 Returns the number of inputs that this node currently has.
 
VDF_API void SetDebugName (const std::string &name)
 Sets the debug name for this node.
 
template<class F >
void SetDebugNameCallback (F &&f)
 Sets the debug name for this node with a lazily invoked callback.
 
VDF_API void SetDebugNameCallback (VdfNodeDebugNameCallback &&callback)
 Sets the debug name for this node with a lazily invoked callback.
 
VDF_API const std::string GetDebugName () const
 Returns the debug name for this node, if one is registered.
 
virtual VDF_API size_t GetMemoryUsage () const
 Returns the amount of memory used by the node in bytes.
 
virtual VDF_API bool IsSpeculationNode () const
 Returns true if this node performs speculation.
 
virtual VDF_API VdfRequiredInputsPredicate GetRequiredInputsPredicate (const VdfContext &context) const
 Returns a predicate, determining whether a given input and its connections are required in order to fulfill this node's input dependencies.
 
VDF_API VdfMask ComputeOutputDependencyMask (const VdfConnection &inputConnection, const VdfMask &inputDependencyMask, const VdfOutput &output) const
 Returns a mask that indicates which elements of the data that flows along output depend on the elements indicated by inputDependencyMask that flow in via inputConnection.
 
VDF_API void ComputeOutputDependencyMasks (const VdfConnection &inputConnection, const VdfMask &inputDependencyMask, VdfMaskedOutputVector *outputDependencies) const
 Vectorized version of ComputeOutputDependencyMask.
 
VDF_API VdfMask::Bits ComputeInputDependencyMask (const VdfMaskedOutput &maskedOutput, const VdfConnection &inputConnection) const
 Returns a mask that indicates which elements of the data that flows along inputConnection are needed to compute the data flowing out as indicated by maskedOutput.
 
VDF_API VdfConnectionAndMaskVector ComputeInputDependencyMasks (const VdfMaskedOutput &maskedOutput, bool skipAssociatedInputs) const
 Vectorized version of ComputeInputDependencyMask.
 
VDF_API VdfConnectionAndMaskVector ComputeInputDependencyRequest (const VdfMaskedOutputVector &request) const
 Vectorized version of ComputeInputDependencyMasks().
 
- Static Protected Member Functions inherited from VdfNode
template<typename BaseClassType , typename ClassType >
static size_t _GetMemoryUsage (const ClassType &c, size_t dynamicSize)
 Helper method for determining the amount of memory that a node uses.
 

Detailed Description

Base class for root nodes.

A root node is a node that does not have any inputs and Compute() method. Instead it has output(s) that are manually initialized. As such, the outputs can never be passed. Downstream nodes might see no data (ie. VdfContext::HasInputValue() will return false), if outputs have not been initialized manually.

Definition at line 29 of file rootNode.h.

Constructor & Destructor Documentation

◆ VdfRootNode()

VdfRootNode ( VdfNetwork network,
const VdfOutputSpecs outputSpecs 
)
inlineprotected

Note that VdfRootNodes don't have inputs.

Definition at line 44 of file rootNode.h.

Member Function Documentation

◆ IsARootNode()

static bool IsARootNode ( const VdfNode node)
inlinestatic

Returns true if the given node is a VdfRootNode.

This method is an accelerated alternative to IsA<VdfRootNode>() or dynamic_cast.

Definition at line 36 of file rootNode.h.


The documentation for this class was generated from the following file: