7#ifndef PXR_EXEC_VDF_DATA_MANAGER_BASED_SUB_EXECUTOR_H
8#define PXR_EXEC_VDF_DATA_MANAGER_BASED_SUB_EXECUTOR_H
18PXR_NAMESPACE_OPEN_SCOPE
30template <
typename DataManagerType,
typename BaseClass >
31class VdfDataManagerBasedSubExecutor :
41 VdfDataManagerBasedSubExecutor() {}
45 explicit VdfDataManagerBasedSubExecutor(
52 virtual ~VdfDataManagerBasedSubExecutor() {}
60 const VdfMask &mask)
const override {
63 Base::_dataManager.GetInputValue(connection, mask)) {
75 const VdfMask &mask )
const override {
78 Base::_dataManager.GetOutputValueForReading(
79 Base::_dataManager.GetDataHandle(output.
GetId()), mask)) {
84 return _GetParentExecutorValue(output, mask);
101PXR_NAMESPACE_CLOSE_SCOPE
A class that fully represents a connection between two VdfNodes.
const VdfOutput & GetSourceOutput() const
Returns the output (ie. source) for this connection.
Base class for executors that use a data manager.
virtual const VdfVector * _GetOutputValueForReading(const VdfOutput &output, const VdfMask &mask) const override
Returns an output value for reading.
virtual const VdfVector * _GetInputValue(const VdfConnection &connection, const VdfMask &mask) const override
Returns value for the cache that flows across connection.
Abstract base class for classes that execute a VdfNetwork to compute a requested set of values.
const VdfVector * GetOutputValue(const VdfOutput &output, const VdfMask &mask) const
Returns the cached value for a given output if it has a cache that contains all values specified by m...
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.
VdfId GetId() const
The unique id of this output.
This class is used to abstract away knowledge of the cache data used for each node.