7#ifndef PXR_EXEC_VDF_MASKED_OUTPUT_H
8#define PXR_EXEC_VDF_MASKED_OUTPUT_H
14#include "pxr/exec/vdf/api.h"
20PXR_NAMESPACE_OPEN_SCOPE
39 _output(output), _mask(mask) {}
42 _output(output), _mask(std::move(mask)) {}
46 explicit operator bool()
const {
47 return static_cast<bool>(_output);
77 _mask = std::move(mask);
83 return _output == rhs._output &&
88 return !(*
this == rhs);
102 std::less<const VdfOutput *> outputLT;
103 if (outputLT(_output, rhs._output))
106 if (outputLT(rhs._output, _output))
113 return !(rhs < *
this);
121 return !(*
this < rhs);
126 swap(lhs._output, rhs._output);
127 swap(lhs._mask, rhs._mask);
143PXR_NAMESPACE_CLOSE_SCOPE
A VdfMask is placed on connections to specify the data flowing through them.
size_t GetHash() const
Returns a hash for the mask.
Class to hold on to an externally owned output and a mask.
void SetOutput(VdfOutput *output)
Sets the output to output.
VDF_API std::string GetDebugName() const
Returns a string describing this masked output.
VdfOutput * GetOutput() const
Returns the VdfOutput.
const VdfMask & GetMask() const
Returns the VdfMask.
bool operator==(const VdfMaskedOutput &rhs) const
Equality comparison.
void SetMask(const VdfMask &mask)
Sets the mask to mask.
void SetMask(VdfMask &&mask)
Sets the mask to mask.
A VdfOutput represents an output on a node.
Arbitrary total ordering of masks.