![]() |
|
Base class for nodes that support dynamic creation of input and output connectors. More...
#include <extensibleNode.h>
Inheritance diagram for VdfExtensibleNode:Public Member Functions | |
| VDF_API | VdfExtensibleNode (VdfNetwork *network, const VdfInputSpecs &inputSpecs, const VdfOutputSpecs &outputSpecs) |
| VDF_API void | AddOutputSpecs (const VdfOutputSpecs &specs, std::vector< VdfOutput * > *resultOutputs) |
| Appends the supplied specs to this node, and creates and stores additional outputs from them. | |
| VDF_API void | AddInputSpecs (const VdfInputSpecs &specs, std::vector< VdfInput * > *resultInputs) |
| Appends the supplied specs to this node, and creates and stores additional inputs from them. | |
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 VdfNetwork & | GetNetwork () const |
| Returns the network to which this node belongs. | |
| VdfNetwork & | GetNetwork () |
| 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 VdfInputSpecs & | GetInputSpecs () const |
| Returns the list of input specs. | |
| const VdfInput * | GetInput (const TfToken &inputName) const |
Returns the connector named inputName, returns NULL if no input of that name exists. | |
| VDF_API VdfInput * | GetInput (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 VdfOutputSpecs & | GetOutputSpecs () const |
| Returns the list of output specs. | |
| const VdfOutput * | GetOutput (const TfToken &name) const |
Returns the output object named name. | |
| VDF_API VdfOutput * | GetOutput (const TfToken &name) |
Returns the output object named name. | |
| VDF_API VdfOutput * | GetOptionalOutput (const TfToken &name) |
Returns the output object named name. | |
| const VdfOutput * | GetOptionalOutput (const TfToken &name) const |
Returns the output object named name. | |
| const VdfOutput * | GetOutput () const |
| Returns the only output object that this node contains. | |
| VDF_API VdfOutput * | GetOutput () |
| 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 void | Compute (const VdfContext &context) const =0 |
| This is the method called to perform computation. | |
| 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(). | |
Protected Member Functions | |
| 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(). | |
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. | |
| 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 | |
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. | |
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. | |
Base class for nodes that support dynamic creation of input and output connectors.
Definition at line 32 of file extensibleNode.h.
|
protectedvirtual |
Gets an input/output specs pointer that the node can use.
In the case of VdfExtensibleNodes, we manage the storage for the input/output specs as a member of node itself.
Reimplemented from VdfNode.
|
protectedvirtual |
Releases an input/output specs pointer that was acquired with a previous call to _AcquireInputAndOutputSpecsPointer().
This is a no-op for VdfExtensibleNode.
Reimplemented from VdfNode.
| VDF_API void AddInputSpecs | ( | const VdfInputSpecs & | specs, |
| std::vector< VdfInput * > * | resultInputs | ||
| ) |
Appends the supplied specs to this node, and creates and stores additional inputs from them.
A vector of VdfInput* of the same size as specs is the result.
| VDF_API void AddOutputSpecs | ( | const VdfOutputSpecs & | specs, |
| std::vector< VdfOutput * > * | resultOutputs | ||
| ) |
Appends the supplied specs to this node, and creates and stores additional outputs from them.
A vector of VdfOutput* of the same size as specs is the result.