7 #ifndef PXR_EXEC_VDF_VECTOR_IMPL_SINGLE_H
8 #define PXR_EXEC_VDF_VECTOR_IMPL_SINGLE_H
27 template<
typename TYPE>
32 !Vdf_IsBoxedContainer<TYPE>,
33 "Only Vdf_VectorImplBoxed may hold boxed values");
44 _data(std::move(
value)) {
52 _data(std::move(rhs._data)) {
87 TF_VERIFY(
false,
"Attempted to box single-element vector");
135 #define VDF_DECLARE_EXTERN_VECTOR_IMPL_SINGLE(type) \
136 extern template class VDF_API_TYPE Vdf_VectorImplSingle<type>;
138 #undef VDF_DECLARE_EXTERN_VECTOR_IMPL_SINGLE
Vdf_VectorImplSingle(const TYPE &value)
size_t GetNumStoredElements() const override
#define PXR_NAMESPACE_OPEN_SCOPE
GLsizei const GLfloat * value
#define VDF_FOR_EACH_COMMON_TYPE(macro)
VDF_FOR_EACH_COMMON_TYPE expands macro for each common type.
void Merge(const VdfMask::Bits &bits, Vdf_VectorData::DataHolder *destData) const override
A VdfMask is placed on connections to specify the data flowing through them.
Vdf_VectorImplSingle(Vdf_VectorImplSingle &&rhs)
void MoveInto(Vdf_VectorData::DataHolder *destData) override
Fast, compressed bit array which is capable of performing logical operations without first decompress...
size_t GetSize() const override
#define VDF_DECLARE_EXTERN_VECTOR_IMPL_SINGLE(type)
void Box(const VdfMask::Bits &bits, Vdf_VectorData::DataHolder *destData) const override
void Clone(Vdf_VectorData::DataHolder *destData) const override
virtual void Clone(DataHolder *destData) const =0
PXR_NAMESPACE_OPEN_SCOPE size_t VdfEstimateSize(const T &)
Vdf_VectorImplSingle(const Vdf_VectorImplSingle &rhs)
void CloneSubset(const VdfMask &mask, Vdf_VectorData::DataHolder *destData) const override
Implements a Vdf_VectorData storage that is always empty.
#define PXR_NAMESPACE_CLOSE_SCOPE
Implements a Vdf_VectorData storage that is holds a single element.
size_t EstimateElementMemory() const override
Vdf_VectorImplSingle(TYPE &&value)
Vdf_VectorData::Info GetInfo() override