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)) {
73 virtual const VdfVector *_GetOutputValueForReading(
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.
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.
This class is used to abstract away knowledge of the cache data used for each node.