7 #ifndef PXR_EXEC_VDF_READ_WRITE_ACCESSOR_H
8 #define PXR_EXEC_VDF_READ_WRITE_ACCESSOR_H
47 template <
typename T >
113 template <
typename T >
129 const VdfMask *requestMask =
nullptr;
130 const VdfMask *affectsMask =
nullptr;
138 if (!TF_VERIFY(v,
"Output '%s' is missing buffer.",
150 if (affectsMask && !affectsMask->
IsAllOnes()) {
154 _mask = *affectsMask;
167 template <
typename T >
178 return _accessor[index + _offset];
183 return _accessor[_mask.GetBits().FindNthSet(index)];
ReadWriteAccessor< TYPE > GetReadWriteAccessor() const
bool IsContiguous() const
size_t GetFirstSet() const
#define PXR_NAMESPACE_OPEN_SCOPE
VdfReadWriteAccessor(const VdfContext &context)
A VdfMask is placed on connections to specify the data flowing through them.
const T & operator[](size_t index) const
VDF_API VdfVector * _GetOutputValueForWriting(const VdfContext &context, const VdfOutput &output) const
#define TF_DEV_AXIOM(cond)
VdfReadWriteAccessor(const VdfContext &context, const TfToken &name)
VDF_API const TfToken & GetName() const
GLuint const GLchar * name
char const * GetText() const
VDF_API const VdfOutput * _GetRequiredOutputForWriting(const VdfContext &context, const TfToken &name) const
size_t GetNumValues() const
#define PXR_NAMESPACE_CLOSE_SCOPE
VDF_API bool _GetOutputMasks(const VdfContext &context, const VdfOutput &output, const VdfMask **requestMask, const VdfMask **affectsMask) const