7 #ifndef PXR_EXEC_VDF_VECTOR_ACCESSOR_H
8 #define PXR_EXEC_VDF_VECTOR_ACCESSOR_H
31 !Vdf_IsBoxedContainer<T>,
32 "Vdf_VectorAccessor does not provide access to boxed containers");
48 const std::type_info &haveType = data->
GetTypeInfo();
52 "Invalid type. Vector is holding %s, tried to use as %s",
58 _indexMapping =
nullptr;
60 _numValues = info.
size;
61 _data = (
T *)info.
data;
63 _indexMappingHint = 0;
68 _numValues = info.
size;
80 BoxedVectorType *boxedVector = (BoxedVectorType *)info.
data;
81 _numValues = boxedVector->size();
82 _data = boxedVector->data();
88 bool IsEmpty()
const {
return _numValues == 0; }
112 mutable size_t _indexMappingHint;
size_t GetNumValues() const
Vdf_VectorAccessor(Vdf_VectorData *data, const Vdf_VectorData::Info &info)
#define PXR_NAMESPACE_OPEN_SCOPE
Vdf_CompressedIndexMapping * compressedIndexMapping
ARCH_API std::string ArchGetDemangled(const std::string &typeName)
Abstract base class for storing data in a VdfVector.
#define TF_DEV_AXIOM(cond)
virtual const std::type_info & GetTypeInfo() const =0
VDF_API size_t FindDataIndex(size_t logicalIdx, size_t *blockHint) const
T & operator[](size_t idx) const
#define PXR_NAMESPACE_CLOSE_SCOPE
OIIO_UTIL_API const char * c_str(string_view str)
PXR_NAMESPACE_OPEN_SCOPE bool TfSafeTypeCompare(const std::type_info &t1, const std::type_info &t2)