11 #ifndef __GT_DASubArray__
12 #define __GT_DASubArray__
41 , myStart(src.myStart)
48 const char *
className()
const override {
return "GT_DASubArray"; }
60 {
return myData->itemSize(this->getIndirect(offset)); }
64 for (
GT_Size off = myStart; off < myStart; ++off)
65 sum += myData->itemSize(off);
73 && other->myStart == myStart
74 && other->mySize == mySize
75 && myData->isSameIndirection(*other->
myData);
83 #define GT_IMPL_FILL_ARRAY(TYPE) \
84 void doFillArray(TYPE *data, GT_Offset start, GT_Size length, \
85 int tuple_size, int stride) const override \
88 data, getIndirect(start), length, tuple_size, stride); \
90 void doFillArrayAttr(UT_Array<TYPE> &data, UT_Array<int> &sizes, \
91 GT_Offset start, GT_Size length) const override \
93 myData->fillArray(data, sizes, getIndirect(start), length); \
103 #undef GT_IMPL_FILL_ARRAY
107 int tuple_size,
int nrepeats,
int stride,
110 myData->extendedFillArray(data, getIndirect(start), length,
111 tuple_size, nrepeats, stride, black, white);
118 {
return myStart +
offset; }
GT_DASubArray(const GT_DataArrayHandle &data, GT_Offset start, GT_Size size)
Useful constructor.
GT_DataArrayHandle myData
void init(const GT_DataArrayHandle &data, GT_Offset start, GT_Size size)
Initialize with given data.
virtual const void * getBackingData() const
GLuint GLsizei GLsizei * length
GT_Size itemSize(GT_Offset offset) const override
GT_DASubArray(const GT_DASubArray &src)
Copy constructor.
void doExtendedQuantizedFill(uint8 *data, GT_Offset start, GT_Size length, int tuple_size, int nrepeats, int stride, fpreal black, fpreal white) const override
Abstract data class for an array of float, int or string data.
GLint GLenum GLboolean GLsizei stride
GT_DASubArray()
Default constructor.
GT_Size getTotalArrayEntries() const override
bool isSameIndirection(const GT_DataArray &base) const override
A slice of a different data array.
Base class for a data array which references another data array.
#define GT_IMPL_INHERIT_ARRAY(MAP_INDEX, SIZE)
void init(const GT_DataArrayHandle &data)
#define GT_IMPL_FILL_ARRAY(TYPE)
const char * className() const override