HDK
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
GT_DataArray Class Referenceabstract

Abstract data class for an array of float, int or string data. More...

#include <GT_DataArray.h>

+ Inheritance diagram for GT_DataArray:

Classes

class  fillV3BoxTask
 Nested class to perform filling for a POD array. More...
 

Public Member Functions

 GT_DataArray ()
 
 GT_DataArray (const GT_DataArray &src)
 
virtual ~GT_DataArray ()
 
virtual const char * className () const =0
 
virtual GT_DataArrayHandle harden () const
 Create a "hardened" version of the array. More...
 
virtual GT_Storage getStorage () const =0
 Type of data stored in the array. More...
 
virtual GT_Size entries () const =0
 Number of entries in the array. More...
 
virtual GT_Size getTupleSize () const =0
 Number of elements for each array element. More...
 
virtual int64 getMemoryUsage () const =0
 
virtual GT_Type getTypeInfo () const
 Return "type" information for the data. This defaults to GT_TYPE_NONE. More...
 
virtual bool hasArrayEntries () const
 Returns "true" if each entry is an array. More...
 
virtual bool getPointerAliasing (const void *data) const
 Return "true" if there's pointer aliasing. More...
 
virtual bool isValid () const
 Data array is valid; can be sampled from. More...
 
virtual int64 getDataId () const
 
virtual GT_Size getStringIndexCount () const =0
 
virtual GT_Offset getStringIndex (GT_Offset offset, int idx=0) const =0
 
virtual void getIndexedStrings (UT_StringArray &strings, UT_IntArray &indices) const =0
 
virtual void getStrings (UT_StringArray &strings) const
 
void fillStrings (std::string *strings, int tuple_idx=0) const
 
virtual void extendedFillArray (uint8 *data, GT_Offset start, GT_Size length, int tsize, int nrepeats, int stride=-1, fpreal black=0, fpreal white=1) const
 
bool isEqual (const GT_DataArray &src) const
 Compare whether two data arrays are equal. More...
 
GT_Storage checkIndexing (GT_IndexingMode mode) const
 Test to see whether the data array requires int32 or int64 indexing. More...
 
void dumpValues (const char *msg=NULL) const
 For debugging, print values to stdout. More...
 
bool save (UT_JSONWriter &w, bool flat=true) const
 
void copyDataId (const GT_DataArray &src)
 
void setDataId (int64 id)
 
virtual void updateGeoDetail (const GU_ConstDetailHandle &dtl, const char *attrib_name, GT_Owner attrib_owner, const int expected_size)
 Update cached data, in case the underlying attribute changed. More...
 
template<typename T >
T getValue (GT_Offset index) const
 Public accessor for POD types. More...
 
template<typename T >
T lerpValue (GT_Offset i0, GT_Offset i1, fpreal t) const
 
template<typename T >
T bilerpValue (GT_Offset u0v0, GT_Offset u1v0, GT_Offset u0v1, GT_Offset u1v1, fpreal u, fpreal v)
 
virtual uint8 getU8 (GT_Offset offset, int idx=0) const =0
 
virtual int32 getI32 (GT_Offset offset, int idx=0) const =0
 
virtual int64 getI64 (GT_Offset offset, int idx=0) const
 
virtual fpreal16 getF16 (GT_Offset offset, int idx=0) const
 
virtual fpreal32 getF32 (GT_Offset offset, int idx=0) const =0
 
virtual fpreal64 getF64 (GT_Offset offset, int idx=0) const
 
virtual GT_String getS (GT_Offset offset, int idx=0) const =0
 
virtual bool getSA (UT_StringArray &a, GT_Offset offset) const
 
virtual bool getFA32 (UT_ValArray< fpreal32 > &a, GT_Offset offset) const
 
virtual bool getIA32 (UT_ValArray< int32 > &a, GT_Offset offset) const
 
virtual const uint8getU8Array (GT_DataArrayHandle &buffer) const
 
virtual const int32getI32Array (GT_DataArrayHandle &buffer) const
 
virtual const int64getI64Array (GT_DataArrayHandle &buffer) const
 
virtual const fpreal16getF16Array (GT_DataArrayHandle &buffer) const
 
virtual const fpreal32getF32Array (GT_DataArrayHandle &buffer) const
 
virtual const fpreal64getF64Array (GT_DataArrayHandle &buffer) const
 
const fprealgetRealArray (GT_DataArrayHandle &buffer) const
 
void import (GT_Offset idx, int32 *data, GT_Size size=0) const
 
void import (GT_Offset idx, int64 *data, GT_Size size=0) const
 
void import (GT_Offset idx, fpreal16 *data, GT_Size size=0) const
 
void import (GT_Offset idx, fpreal32 *data, GT_Size size=0) const
 
void import (GT_Offset idx, fpreal64 *data, GT_Size size=0) const
 
void import (GT_Offset idx, UT_ValArray< fpreal32 > &data) const
 
void import (GT_Offset idx, UT_ValArray< int32 > &data) const
 
void import (GT_Offset idx, uint8 *data, GT_Size size=0, fpreal black=0, fpreal white=1) const
 
void fillArray (int32 *data, GT_Offset start, GT_Size length, int tsize, int stride=-1) const
 
void fillArray (int64 *data, GT_Offset start, GT_Size length, int tsize, int stride=-1) const
 
void fillArray (fpreal16 *data, GT_Offset start, GT_Size length, int tsize, int stride=-1) const
 
void fillArray (fpreal32 *data, GT_Offset start, GT_Size length, int tsize, int stride=-1) const
 
void fillArray (fpreal64 *data, GT_Offset start, GT_Size length, int tsize, int stride=-1) const
 
void fillArray (uint8 *data, GT_Offset start, GT_Size length, int tsize, int stride=-1, fpreal black=0, fpreal white=1) const
 
void fillVec3BBox (fpreal32 *dest, GT_Offset start, GT_Size length, UT_BoundingBoxF &bbox, int tsize, int stride=-1)
 
void fillVec3BBox (fpreal64 *dest, GT_Offset start, GT_Size length, UT_BoundingBoxD &bbox, int tsize, int stride=-1)
 
virtual void extendedFill (uint8 *data, GT_Offset start, GT_Size length, int tsize, int nrepeats, int stride=-1) const
 
virtual void extendedFill (int32 *data, GT_Offset start, GT_Size length, int tsize, int nrepeats, int stride=-1) const
 
virtual void extendedFill (int64 *data, GT_Offset start, GT_Size length, int tsize, int nrepeats, int stride=-1) const
 
virtual void extendedFill (fpreal16 *data, GT_Offset start, GT_Size length, int tsize, int nrepeats, int stride=-1) const
 
virtual void extendedFill (fpreal32 *data, GT_Offset start, GT_Size length, int tsize, int nrepeats, int stride=-1) const
 
virtual void extendedFill (fpreal64 *data, GT_Offset start, GT_Size length, int tsize, int nrepeats, int stride=-1) const
 
virtual const uint8get (GT_Offset i, uint8 *store, int sz) const
 
virtual const int32get (GT_Offset i, int32 *store, int sz) const
 
virtual const int64get (GT_Offset i, int64 *store, int sz) const
 
virtual const fpreal16get (GT_Offset i, fpreal16 *store, int z) const
 
virtual const fpreal32get (GT_Offset i, fpreal32 *store, int z) const
 
virtual const fpreal64get (GT_Offset i, fpreal64 *store, int z) const
 
virtual void getRange (exint &lo, exint &hi, int tuple_idx=0) const
 
virtual void getRange (fpreal &lo, fpreal &hi, int tidx=0) const
 
- Public Member Functions inherited from UT_IntrusiveRefCounter< GT_DataArray >
SYS_FORCE_INLINE UT_IntrusiveRefCounter ()
 Default constructor: Sets counter to 0. More...
 
SYS_FORCE_INLINE UT_IntrusiveRefCounter (const UT_IntrusiveRefCounter &)
 Copy constructor: Sets counter to 0. More...
 
UT_IntrusiveRefCounteroperator= (const UT_IntrusiveRefCounter &)
 Assignment operator: Does not modify counter. More...
 
SYS_FORCE_INLINE uint32 use_count () const
 Return current counter. More...
 

Static Public Member Functions

static bool isBigInteger (GT_Size size)
 Quick & dirty test to see if a size is bigger than a 32 bit int. More...
 
static voidoperator new (size_t size)
 
static voidoperator new (size_t size, void *p)
 
static void operator delete (void *p, size_t size)
 

Protected Member Functions

SYS_STATIC_FORCE_INLINE GT_Size fixImportTupleSize (GT_Size size, GT_Size tuple_size)
 
template<typename T_POD >
void t_extendedFill (T_POD *dest, GT_Offset start, GT_Size length, int tsize, int nrepeats, int stride) const
 Templated method to fill an array. More...
 
virtual void doImport (GT_Offset idx, uint8 *data, GT_Size size) const
 
virtual void doImport (GT_Offset idx, int32 *data, GT_Size size) const
 
virtual void doImport (GT_Offset idx, int64 *data, GT_Size size) const
 
virtual void doImport (GT_Offset idx, fpreal16 *data, GT_Size size) const
 
virtual void doImport (GT_Offset idx, fpreal32 *data, GT_Size size) const
 
virtual void doImport (GT_Offset idx, fpreal64 *data, GT_Size size) const
 
virtual void doImportArray (GT_Offset idx, UT_ValArray< fpreal32 > &data) const
 
virtual void doImportArray (GT_Offset idx, UT_ValArray< int32 > &data) const
 
virtual void doImportQuantized (GT_Offset idx, uint8 *data, GT_Size size, fpreal black, fpreal white) const
 
virtual void doFillArray (uint8 *data, GT_Offset start, GT_Size length, int tuple_size, int stride) const
 
virtual void doFillArray (int32 *data, GT_Offset start, GT_Size length, int tuple_size, int stride) const
 
virtual void doFillArray (int64 *data, GT_Offset start, GT_Size length, int tuple_size, int stride) const
 
virtual void doFillArray (fpreal16 *data, GT_Offset start, GT_Size length, int tuple_size, int stride) const
 
virtual void doFillArray (fpreal32 *data, GT_Offset start, GT_Size length, int tuple_size, int stride) const
 
virtual void doFillArray (fpreal64 *data, GT_Offset start, GT_Size length, int tuple_size, int stride) const
 
virtual void doFillQuantizedArray (uint8 *data, GT_Offset start, GT_Size length, int tuple_size, int stride, fpreal black, fpreal white) const
 
virtual void doExtendedQuantizedFill (uint8 *data, GT_Offset start, GT_Size length, int tuple_size, int nrepeats, int stride, fpreal black, fpreal white) const
 
virtual void doFillVec3BBox (fpreal32 *dest, GT_Offset start, GT_Size length, UT_BoundingBoxF &bbox, int, int stride)
 
virtual void doFillVec3BBox (fpreal64 *dest, GT_Offset start, GT_Size length, UT_BoundingBoxD &bbox, int, int stride)
 
- Protected Member Functions inherited from UT_IntrusiveRefCounter< GT_DataArray >
SYS_FORCE_INLINE ~UT_IntrusiveRefCounter ()
 Destructor: Only derived classes can destruct this. More...
 

Detailed Description

Abstract data class for an array of float, int or string data.

This is an abstract class. The data does not have to be owned by this array. The data can be generated on the fly by the class. Or the data might be flat numeric data.

Definition at line 38 of file GT_DataArray.h.

Constructor & Destructor Documentation

GT_DataArray::GT_DataArray ( )
GT_DataArray::GT_DataArray ( const GT_DataArray src)
virtual GT_DataArray::~GT_DataArray ( )
virtual

Member Function Documentation

template<typename T >
T GT_DataArray::bilerpValue ( GT_Offset  u0v0,
GT_Offset  u1v0,
GT_Offset  u0v1,
GT_Offset  u1v1,
fpreal  u,
fpreal  v 
)
inline

Definition at line 589 of file GT_DataArray.h.

GT_Storage GT_DataArray::checkIndexing ( GT_IndexingMode  mode) const

Test to see whether the data array requires int32 or int64 indexing.

void GT_DataArray::copyDataId ( const GT_DataArray src)
inline

Forcibly set the data id for the array. You take responsibility for all artifacts and crashes if you call this indiscriminately.

Definition at line 357 of file GT_DataArray.h.

virtual void GT_DataArray::doExtendedQuantizedFill ( uint8 data,
GT_Offset  start,
GT_Size  length,
int  tuple_size,
int  nrepeats,
int  stride,
fpreal  black,
fpreal  white 
) const
protectedvirtual

Virtual implementation for inline methods. Note that doImport is for tuple data, while doImportArray is for tuple array data.

Reimplemented in GT_GEOElementArray, and GT_DABool.

virtual void GT_DataArray::doFillArray ( uint8 data,
GT_Offset  start,
GT_Size  length,
int  tuple_size,
int  stride 
) const
inlineprotectedvirtual

Virtual implementation for inline methods. Note that doImport is for tuple data, while doImportArray is for tuple array data.

Reimplemented in GT_DANumeric< T >, GT_GEOElementArray, GABC_NAMESPACE::GABC_IGTArray< POD_T >, GT_DAList, and GT_GEOElementId.

Definition at line 397 of file GT_DataArray.h.

virtual void GT_DataArray::doFillArray ( int32 data,
GT_Offset  start,
GT_Size  length,
int  tuple_size,
int  stride 
) const
inlineprotectedvirtual

Virtual implementation for inline methods. Note that doImport is for tuple data, while doImportArray is for tuple array data.

Reimplemented in GT_DANumeric< T >, GABC_NAMESPACE::GABC_IGTArray< POD_T >, GT_GEOElementArray, GT_DAList, and GT_GEOElementId.

Definition at line 401 of file GT_DataArray.h.

virtual void GT_DataArray::doFillArray ( int64 data,
GT_Offset  start,
GT_Size  length,
int  tuple_size,
int  stride 
) const
inlineprotectedvirtual

Virtual implementation for inline methods. Note that doImport is for tuple data, while doImportArray is for tuple array data.

Reimplemented in GT_DANumeric< T >, GABC_NAMESPACE::GABC_IGTArray< POD_T >, GT_GEOElementArray, GT_DAList, and GT_GEOElementId.

Definition at line 404 of file GT_DataArray.h.

virtual void GT_DataArray::doFillArray ( fpreal16 data,
GT_Offset  start,
GT_Size  length,
int  tuple_size,
int  stride 
) const
inlineprotectedvirtual

Virtual implementation for inline methods. Note that doImport is for tuple data, while doImportArray is for tuple array data.

Reimplemented in GT_DANumeric< T >, GABC_NAMESPACE::GABC_IGTArray< POD_T >, GT_GEOElementArray, GT_DAList, and GT_GEOElementId.

Definition at line 407 of file GT_DataArray.h.

virtual void GT_DataArray::doFillArray ( fpreal32 data,
GT_Offset  start,
GT_Size  length,
int  tuple_size,
int  stride 
) const
inlineprotectedvirtual

Virtual implementation for inline methods. Note that doImport is for tuple data, while doImportArray is for tuple array data.

Reimplemented in GT_DANumeric< T >, GABC_NAMESPACE::GABC_IGTArray< POD_T >, GT_GEOElementArray, GT_DAList, and GT_GEOElementId.

Definition at line 410 of file GT_DataArray.h.

virtual void GT_DataArray::doFillArray ( fpreal64 data,
GT_Offset  start,
GT_Size  length,
int  tuple_size,
int  stride 
) const
inlineprotectedvirtual

Virtual implementation for inline methods. Note that doImport is for tuple data, while doImportArray is for tuple array data.

Reimplemented in GT_DANumeric< T >, GABC_NAMESPACE::GABC_IGTArray< POD_T >, GT_GEOElementArray, GT_DAList, and GT_GEOElementId.

Definition at line 413 of file GT_DataArray.h.

virtual void GT_DataArray::doFillQuantizedArray ( uint8 data,
GT_Offset  start,
GT_Size  length,
int  tuple_size,
int  stride,
fpreal  black,
fpreal  white 
) const
inlineprotectedvirtual

Virtual implementation for inline methods. Note that doImport is for tuple data, while doImportArray is for tuple array data.

Reimplemented in GT_GEOElementArray, and GT_DABool.

Definition at line 417 of file GT_DataArray.h.

virtual void GT_DataArray::doFillVec3BBox ( fpreal32 dest,
GT_Offset  start,
GT_Size  length,
UT_BoundingBoxF bbox,
int  ,
int  stride 
)
inlineprotectedvirtual

Virtual implementation for inline methods. Note that doImport is for tuple data, while doImportArray is for tuple array data.

Reimplemented in GT_GEOElementArray.

Definition at line 475 of file GT_DataArray.h.

virtual void GT_DataArray::doFillVec3BBox ( fpreal64 dest,
GT_Offset  start,
GT_Size  length,
UT_BoundingBoxD bbox,
int  ,
int  stride 
)
inlineprotectedvirtual

Virtual implementation for inline methods. Note that doImport is for tuple data, while doImportArray is for tuple array data.

Reimplemented in GT_GEOElementArray.

Definition at line 483 of file GT_DataArray.h.

virtual void GT_DataArray::doImport ( GT_Offset  idx,
uint8 data,
GT_Size  size 
) const
protectedvirtual

Virtual implementation for inline methods. Note that doImport is for tuple data, while doImportArray is for tuple array data.

Reimplemented in GT_DANumeric< T >, GT_GEOElementArray, GABC_NAMESPACE::GABC_IGTArray< POD_T >, GT_DAList, and GT_DABool.

virtual void GT_DataArray::doImport ( GT_Offset  idx,
int32 data,
GT_Size  size 
) const
protectedvirtual

Virtual implementation for inline methods. Note that doImport is for tuple data, while doImportArray is for tuple array data.

Reimplemented in GT_DANumeric< T >, GT_GEOElementArray, GABC_NAMESPACE::GABC_IGTArray< POD_T >, GT_DAList, and GT_DABool.

virtual void GT_DataArray::doImport ( GT_Offset  idx,
int64 data,
GT_Size  size 
) const
protectedvirtual

Virtual implementation for inline methods. Note that doImport is for tuple data, while doImportArray is for tuple array data.

Reimplemented in GT_DANumeric< T >, GT_GEOElementArray, GABC_NAMESPACE::GABC_IGTArray< POD_T >, GT_DAList, and GT_DABool.

virtual void GT_DataArray::doImport ( GT_Offset  idx,
fpreal16 data,
GT_Size  size 
) const
protectedvirtual

Virtual implementation for inline methods. Note that doImport is for tuple data, while doImportArray is for tuple array data.

Reimplemented in GT_DANumeric< T >, GT_GEOElementArray, GABC_NAMESPACE::GABC_IGTArray< POD_T >, GT_DAList, and GT_DABool.

virtual void GT_DataArray::doImport ( GT_Offset  idx,
fpreal32 data,
GT_Size  size 
) const
protectedvirtual

Virtual implementation for inline methods. Note that doImport is for tuple data, while doImportArray is for tuple array data.

Reimplemented in GT_DANumeric< T >, GT_GEOElementArray, GABC_NAMESPACE::GABC_IGTArray< POD_T >, GT_DAList, and GT_DABool.

virtual void GT_DataArray::doImport ( GT_Offset  idx,
fpreal64 data,
GT_Size  size 
) const
protectedvirtual

Virtual implementation for inline methods. Note that doImport is for tuple data, while doImportArray is for tuple array data.

Reimplemented in GT_DANumeric< T >, GT_GEOElementArray, GABC_NAMESPACE::GABC_IGTArray< POD_T >, GT_DAList, and GT_DABool.

virtual void GT_DataArray::doImportArray ( GT_Offset  idx,
UT_ValArray< fpreal32 > &  data 
) const
protectedvirtual

Virtual implementation for inline methods. Note that doImport is for tuple data, while doImportArray is for tuple array data.

Reimplemented in GT_GEOElementArray.

virtual void GT_DataArray::doImportArray ( GT_Offset  idx,
UT_ValArray< int32 > &  data 
) const
protectedvirtual

Virtual implementation for inline methods. Note that doImport is for tuple data, while doImportArray is for tuple array data.

Reimplemented in GT_GEOElementArray.

virtual void GT_DataArray::doImportQuantized ( GT_Offset  idx,
uint8 data,
GT_Size  size,
fpreal  black,
fpreal  white 
) const
protectedvirtual

Virtual implementation for inline methods. Note that doImport is for tuple data, while doImportArray is for tuple array data.

void GT_DataArray::dumpValues ( const char *  msg = NULL) const

For debugging, print values to stdout.

virtual void GT_DataArray::extendedFill ( uint8 data,
GT_Offset  start,
GT_Size  length,
int  tsize,
int  nrepeats,
int  stride = -1 
) const
inlinevirtual

Extract an element, but making nrepeats copies. The buffer should be able to contain length*nrepeats*tsize elements When filling an RGB color, with a repeat count of 4, the resulting buffer will look like:

[ RGB0 RGB0 RGB0 RGB0 RGB1 RGB1 RGB1 RGB1 ... ]

With a repeat count of 1, this is equivalent to fillArray()

Definition at line 273 of file GT_DataArray.h.

virtual void GT_DataArray::extendedFill ( int32 data,
GT_Offset  start,
GT_Size  length,
int  tsize,
int  nrepeats,
int  stride = -1 
) const
inlinevirtual

Extract an element, but making nrepeats copies. The buffer should be able to contain length*nrepeats*tsize elements When filling an RGB color, with a repeat count of 4, the resulting buffer will look like:

[ RGB0 RGB0 RGB0 RGB0 RGB1 RGB1 RGB1 RGB1 ... ]

With a repeat count of 1, this is equivalent to fillArray()

Definition at line 279 of file GT_DataArray.h.

virtual void GT_DataArray::extendedFill ( int64 data,
GT_Offset  start,
GT_Size  length,
int  tsize,
int  nrepeats,
int  stride = -1 
) const
inlinevirtual

Extract an element, but making nrepeats copies. The buffer should be able to contain length*nrepeats*tsize elements When filling an RGB color, with a repeat count of 4, the resulting buffer will look like:

[ RGB0 RGB0 RGB0 RGB0 RGB1 RGB1 RGB1 RGB1 ... ]

With a repeat count of 1, this is equivalent to fillArray()

Definition at line 285 of file GT_DataArray.h.

virtual void GT_DataArray::extendedFill ( fpreal16 data,
GT_Offset  start,
GT_Size  length,
int  tsize,
int  nrepeats,
int  stride = -1 
) const
inlinevirtual

Extract an element, but making nrepeats copies. The buffer should be able to contain length*nrepeats*tsize elements When filling an RGB color, with a repeat count of 4, the resulting buffer will look like:

[ RGB0 RGB0 RGB0 RGB0 RGB1 RGB1 RGB1 RGB1 ... ]

With a repeat count of 1, this is equivalent to fillArray()

Definition at line 291 of file GT_DataArray.h.

virtual void GT_DataArray::extendedFill ( fpreal32 data,
GT_Offset  start,
GT_Size  length,
int  tsize,
int  nrepeats,
int  stride = -1 
) const
inlinevirtual

Extract an element, but making nrepeats copies. The buffer should be able to contain length*nrepeats*tsize elements When filling an RGB color, with a repeat count of 4, the resulting buffer will look like:

[ RGB0 RGB0 RGB0 RGB0 RGB1 RGB1 RGB1 RGB1 ... ]

With a repeat count of 1, this is equivalent to fillArray()

Definition at line 297 of file GT_DataArray.h.

virtual void GT_DataArray::extendedFill ( fpreal64 data,
GT_Offset  start,
GT_Size  length,
int  tsize,
int  nrepeats,
int  stride = -1 
) const
inlinevirtual

Extract an element, but making nrepeats copies. The buffer should be able to contain length*nrepeats*tsize elements When filling an RGB color, with a repeat count of 4, the resulting buffer will look like:

[ RGB0 RGB0 RGB0 RGB0 RGB1 RGB1 RGB1 RGB1 ... ]

With a repeat count of 1, this is equivalent to fillArray()

Definition at line 303 of file GT_DataArray.h.

virtual void GT_DataArray::extendedFillArray ( uint8 data,
GT_Offset  start,
GT_Size  length,
int  tsize,
int  nrepeats,
int  stride = -1,
fpreal  black = 0,
fpreal  white = 1 
) const
inlinevirtual

Definition at line 255 of file GT_DataArray.h.

void GT_DataArray::fillArray ( int32 data,
GT_Offset  start,
GT_Size  length,
int  tsize,
int  stride = -1 
) const
inline

Extract data for the entire array into a flat data array. By default, this is implemented as:

if (tuple_size <= 0)
tuple_size = getTupleSize();
for (GT_Offset idx = 0; idx < length; ++idx, data += tuple_size)
import(idx+start, data, tuple_size);

Obviously, the data array should be big enough to hold length*tuple_size elements.

The tuple size (tsize) specifies how many elements to extract from each element of this array. The stride specifies how many items to skip over for each element. With a stride of -1, the stride will be set to the tsize. Otherwise the stride will be set to the maximum of tsize and stride.

The stride can be useful when trying to interleave data. For example:

float uvbuf[ucoord->entries()*2];
ucoord->fillArray(&uvbuf[0], 0, ucoord->entries(), 1, 2);
vcoord->fillArray(&uvbuf[1], 0, vcoord->entries(), 1, 2);

Definition at line 212 of file GT_DataArray.h.

void GT_DataArray::fillArray ( int64 data,
GT_Offset  start,
GT_Size  length,
int  tsize,
int  stride = -1 
) const
inline

Extract data for the entire array into a flat data array. By default, this is implemented as:

if (tuple_size <= 0)
tuple_size = getTupleSize();
for (GT_Offset idx = 0; idx < length; ++idx, data += tuple_size)
import(idx+start, data, tuple_size);

Obviously, the data array should be big enough to hold length*tuple_size elements.

The tuple size (tsize) specifies how many elements to extract from each element of this array. The stride specifies how many items to skip over for each element. With a stride of -1, the stride will be set to the tsize. Otherwise the stride will be set to the maximum of tsize and stride.

The stride can be useful when trying to interleave data. For example:

float uvbuf[ucoord->entries()*2];
ucoord->fillArray(&uvbuf[0], 0, ucoord->entries(), 1, 2);
vcoord->fillArray(&uvbuf[1], 0, vcoord->entries(), 1, 2);

Definition at line 215 of file GT_DataArray.h.

void GT_DataArray::fillArray ( fpreal16 data,
GT_Offset  start,
GT_Size  length,
int  tsize,
int  stride = -1 
) const
inline

Extract data for the entire array into a flat data array. By default, this is implemented as:

if (tuple_size <= 0)
tuple_size = getTupleSize();
for (GT_Offset idx = 0; idx < length; ++idx, data += tuple_size)
import(idx+start, data, tuple_size);

Obviously, the data array should be big enough to hold length*tuple_size elements.

The tuple size (tsize) specifies how many elements to extract from each element of this array. The stride specifies how many items to skip over for each element. With a stride of -1, the stride will be set to the tsize. Otherwise the stride will be set to the maximum of tsize and stride.

The stride can be useful when trying to interleave data. For example:

float uvbuf[ucoord->entries()*2];
ucoord->fillArray(&uvbuf[0], 0, ucoord->entries(), 1, 2);
vcoord->fillArray(&uvbuf[1], 0, vcoord->entries(), 1, 2);

Definition at line 218 of file GT_DataArray.h.

void GT_DataArray::fillArray ( fpreal32 data,
GT_Offset  start,
GT_Size  length,
int  tsize,
int  stride = -1 
) const
inline

Extract data for the entire array into a flat data array. By default, this is implemented as:

if (tuple_size <= 0)
tuple_size = getTupleSize();
for (GT_Offset idx = 0; idx < length; ++idx, data += tuple_size)
import(idx+start, data, tuple_size);

Obviously, the data array should be big enough to hold length*tuple_size elements.

The tuple size (tsize) specifies how many elements to extract from each element of this array. The stride specifies how many items to skip over for each element. With a stride of -1, the stride will be set to the tsize. Otherwise the stride will be set to the maximum of tsize and stride.

The stride can be useful when trying to interleave data. For example:

float uvbuf[ucoord->entries()*2];
ucoord->fillArray(&uvbuf[0], 0, ucoord->entries(), 1, 2);
vcoord->fillArray(&uvbuf[1], 0, vcoord->entries(), 1, 2);

Definition at line 221 of file GT_DataArray.h.

void GT_DataArray::fillArray ( fpreal64 data,
GT_Offset  start,
GT_Size  length,
int  tsize,
int  stride = -1 
) const
inline

Extract data for the entire array into a flat data array. By default, this is implemented as:

if (tuple_size <= 0)
tuple_size = getTupleSize();
for (GT_Offset idx = 0; idx < length; ++idx, data += tuple_size)
import(idx+start, data, tuple_size);

Obviously, the data array should be big enough to hold length*tuple_size elements.

The tuple size (tsize) specifies how many elements to extract from each element of this array. The stride specifies how many items to skip over for each element. With a stride of -1, the stride will be set to the tsize. Otherwise the stride will be set to the maximum of tsize and stride.

The stride can be useful when trying to interleave data. For example:

float uvbuf[ucoord->entries()*2];
ucoord->fillArray(&uvbuf[0], 0, ucoord->entries(), 1, 2);
vcoord->fillArray(&uvbuf[1], 0, vcoord->entries(), 1, 2);

Definition at line 224 of file GT_DataArray.h.

void GT_DataArray::fillArray ( uint8 data,
GT_Offset  start,
GT_Size  length,
int  tsize,
int  stride = -1,
fpreal  black = 0,
fpreal  white = 1 
) const
inline

Extract data for the entire array into a flat data array. By default, this is implemented as:

if (tuple_size <= 0)
tuple_size = getTupleSize();
for (GT_Offset idx = 0; idx < length; ++idx, data += tuple_size)
import(idx+start, data, tuple_size);

Obviously, the data array should be big enough to hold length*tuple_size elements.

The tuple size (tsize) specifies how many elements to extract from each element of this array. The stride specifies how many items to skip over for each element. With a stride of -1, the stride will be set to the tsize. Otherwise the stride will be set to the maximum of tsize and stride.

The stride can be useful when trying to interleave data. For example:

float uvbuf[ucoord->entries()*2];
ucoord->fillArray(&uvbuf[0], 0, ucoord->entries(), 1, 2);
vcoord->fillArray(&uvbuf[1], 0, vcoord->entries(), 1, 2);

Definition at line 227 of file GT_DataArray.h.

void GT_DataArray::fillStrings ( std::string strings,
int  tuple_idx = 0 
) const

Fill an array of std::string with the strings corresponding to each entry. There must be entries() strings in the array. Only a single tuple index is extracted.

void GT_DataArray::fillVec3BBox ( fpreal32 dest,
GT_Offset  start,
GT_Size  length,
UT_BoundingBoxF bbox,
int  tsize,
int  stride = -1 
)
inline

Extract data for the entire array into a flat data array. By default, this is implemented as:

if (tuple_size <= 0)
tuple_size = getTupleSize();
for (GT_Offset idx = 0; idx < length; ++idx, data += tuple_size)
import(idx+start, data, tuple_size);

Obviously, the data array should be big enough to hold length*tuple_size elements.

The tuple size (tsize) specifies how many elements to extract from each element of this array. The stride specifies how many items to skip over for each element. With a stride of -1, the stride will be set to the tsize. Otherwise the stride will be set to the maximum of tsize and stride.

The stride can be useful when trying to interleave data. For example:

float uvbuf[ucoord->entries()*2];
ucoord->fillArray(&uvbuf[0], 0, ucoord->entries(), 1, 2);
vcoord->fillArray(&uvbuf[1], 0, vcoord->entries(), 1, 2);

Definition at line 239 of file GT_DataArray.h.

void GT_DataArray::fillVec3BBox ( fpreal64 dest,
GT_Offset  start,
GT_Size  length,
UT_BoundingBoxD bbox,
int  tsize,
int  stride = -1 
)
inline

Extract data for the entire array into a flat data array. By default, this is implemented as:

if (tuple_size <= 0)
tuple_size = getTupleSize();
for (GT_Offset idx = 0; idx < length; ++idx, data += tuple_size)
import(idx+start, data, tuple_size);

Obviously, the data array should be big enough to hold length*tuple_size elements.

The tuple size (tsize) specifies how many elements to extract from each element of this array. The stride specifies how many items to skip over for each element. With a stride of -1, the stride will be set to the tsize. Otherwise the stride will be set to the maximum of tsize and stride.

The stride can be useful when trying to interleave data. For example:

float uvbuf[ucoord->entries()*2];
ucoord->fillArray(&uvbuf[0], 0, ucoord->entries(), 1, 2);
vcoord->fillArray(&uvbuf[1], 0, vcoord->entries(), 1, 2);

Definition at line 246 of file GT_DataArray.h.

SYS_STATIC_FORCE_INLINE GT_Size GT_DataArray::fixImportTupleSize ( GT_Size  size,
GT_Size  tuple_size 
)
inlineprotected

Ensure the size is set properly when performing an import. If the size isn't specified, we use the array's tuple size, otherwise we make sure to clamp the tuple size.

Definition at line 377 of file GT_DataArray.h.

virtual const uint8* GT_DataArray::get ( GT_Offset  i,
uint8 store,
int  sz 
) const
virtual

Copy the data out of the array as a tuple of size entries The data may be copied, or the array may return a pointer to raw data. That is, the sub-class may not copy the data into the storage.

Reimplemented in GT_GEOElementArray, and GABC_NAMESPACE::GABC_IGTArray< POD_T >.

virtual const int32* GT_DataArray::get ( GT_Offset  i,
int32 store,
int  sz 
) const
virtual

Copy the data out of the array as a tuple of size entries The data may be copied, or the array may return a pointer to raw data. That is, the sub-class may not copy the data into the storage.

Reimplemented in GT_GEOElementArray, GT_DAValues< T >, and GABC_NAMESPACE::GABC_IGTArray< POD_T >.

virtual const int64* GT_DataArray::get ( GT_Offset  i,
int64 store,
int  sz 
) const
virtual

Copy the data out of the array as a tuple of size entries The data may be copied, or the array may return a pointer to raw data. That is, the sub-class may not copy the data into the storage.

Reimplemented in GT_GEOElementArray, GT_DAValues< T >, and GABC_NAMESPACE::GABC_IGTArray< POD_T >.

virtual const fpreal16* GT_DataArray::get ( GT_Offset  i,
fpreal16 store,
int  z 
) const
virtual

Copy the data out of the array as a tuple of size entries The data may be copied, or the array may return a pointer to raw data. That is, the sub-class may not copy the data into the storage.

Reimplemented in GT_GEOElementArray, GT_DAValues< T >, and GABC_NAMESPACE::GABC_IGTArray< POD_T >.

virtual const fpreal32* GT_DataArray::get ( GT_Offset  i,
fpreal32 store,
int  z 
) const
virtual

Copy the data out of the array as a tuple of size entries The data may be copied, or the array may return a pointer to raw data. That is, the sub-class may not copy the data into the storage.

Reimplemented in GT_GEOElementArray, GT_DAValues< T >, and GABC_NAMESPACE::GABC_IGTArray< POD_T >.

virtual const fpreal64* GT_DataArray::get ( GT_Offset  i,
fpreal64 store,
int  z 
) const
virtual

Copy the data out of the array as a tuple of size entries The data may be copied, or the array may return a pointer to raw data. That is, the sub-class may not copy the data into the storage.

Reimplemented in GT_GEOElementArray, GT_DAValues< T >, and GABC_NAMESPACE::GABC_IGTArray< POD_T >.

virtual int64 GT_DataArray::getDataId ( ) const
inlinevirtual

Return the "data id" associated with the data. The data ID will be incremented if the data is modified. An ID less than 0 indicates that the data ID should always be considered unique and will never be the same across evaluations. This data ID can be used to detect whether attribute data has changed in similar tesselations.

Reimplemented in GT_DAIndirect, and GT_DAInherit.

Definition at line 82 of file GT_DataArray.h.

virtual fpreal16 GT_DataArray::getF16 ( GT_Offset  offset,
int  idx = 0 
) const
inlinevirtual
virtual const fpreal16* GT_DataArray::getF16Array ( GT_DataArrayHandle buffer) const
virtual

Get raw access to the data buffer (or fill the data array passed in) If the array is unable to provide a raw pointer to the underlying data, the GT_DataArrayHandle will be allocated to store the data, and it's raw data will be returned.

This means that the data returned will be destructed when the buffer is destructed. Beware.

Reimplemented in GT_DANumeric< T >, and GABC_NAMESPACE::GABC_IGTArray< POD_T >.

virtual fpreal32 GT_DataArray::getF32 ( GT_Offset  offset,
int  idx = 0 
) const
pure virtual
virtual const fpreal32* GT_DataArray::getF32Array ( GT_DataArrayHandle buffer) const
virtual

Get raw access to the data buffer (or fill the data array passed in) If the array is unable to provide a raw pointer to the underlying data, the GT_DataArrayHandle will be allocated to store the data, and it's raw data will be returned.

This means that the data returned will be destructed when the buffer is destructed. Beware.

Reimplemented in GT_DANumeric< T >, and GABC_NAMESPACE::GABC_IGTArray< POD_T >.

virtual fpreal64 GT_DataArray::getF64 ( GT_Offset  offset,
int  idx = 0 
) const
inlinevirtual
virtual const fpreal64* GT_DataArray::getF64Array ( GT_DataArrayHandle buffer) const
virtual

Get raw access to the data buffer (or fill the data array passed in) If the array is unable to provide a raw pointer to the underlying data, the GT_DataArrayHandle will be allocated to store the data, and it's raw data will be returned.

This means that the data returned will be destructed when the buffer is destructed. Beware.

Reimplemented in GT_DANumeric< T >, and GABC_NAMESPACE::GABC_IGTArray< POD_T >.

virtual bool GT_DataArray::getFA32 ( UT_ValArray< fpreal32 > &  a,
GT_Offset  offset 
) const
inlinevirtual

Get data out of the data array

Reimplemented in GT_GEOElementArray.

Definition at line 101 of file GT_DataArray.h.

virtual int32 GT_DataArray::getI32 ( GT_Offset  offset,
int  idx = 0 
) const
pure virtual
virtual const int32* GT_DataArray::getI32Array ( GT_DataArrayHandle buffer) const
virtual

Get raw access to the data buffer (or fill the data array passed in) If the array is unable to provide a raw pointer to the underlying data, the GT_DataArrayHandle will be allocated to store the data, and it's raw data will be returned.

This means that the data returned will be destructed when the buffer is destructed. Beware.

Reimplemented in GT_DANumeric< T >, and GABC_NAMESPACE::GABC_IGTArray< POD_T >.

virtual int64 GT_DataArray::getI64 ( GT_Offset  offset,
int  idx = 0 
) const
inlinevirtual
virtual const int64* GT_DataArray::getI64Array ( GT_DataArrayHandle buffer) const
virtual

Get raw access to the data buffer (or fill the data array passed in) If the array is unable to provide a raw pointer to the underlying data, the GT_DataArrayHandle will be allocated to store the data, and it's raw data will be returned.

This means that the data returned will be destructed when the buffer is destructed. Beware.

Reimplemented in GT_DANumeric< T >, and GABC_NAMESPACE::GABC_IGTArray< POD_T >.

virtual bool GT_DataArray::getIA32 ( UT_ValArray< int32 > &  a,
GT_Offset  offset 
) const
inlinevirtual

Get data out of the data array

Reimplemented in GT_GEOElementArray.

Definition at line 103 of file GT_DataArray.h.

virtual void GT_DataArray::getIndexedStrings ( UT_StringArray strings,
UT_IntArray indices 
) const
pure virtual

When an array of strings is based on an indexed list of strings, this method can be used to extract all the strings and their corresponding indicies. It's possible that the indices may not be contiguous or may even be out of order.

Implemented in GT_DANumeric< T >, GT_GEOElementArray, GABC_NAMESPACE::GABC_IGTArray< POD_T >, GT_DAConstantValue< T_POD >, GT_DARange, GT_DAIndexedString, GT_DAParametric, GT_DAValues< T >, GT_DAList, GT_GEOElementId, GT_DABool, and GT_DARandom.

virtual int64 GT_DataArray::getMemoryUsage ( ) const
pure virtual

Get an approximation of the memory usage. Since data is shared, this may be an over-estimation of the memory used.

Implemented in GT_GEOAutoNormalArray, GT_DANumeric< T >, GT_GEOElementArray, GT_DAConstantValue< T_POD >, GT_DARange, GT_DAParametric, GT_DAList, GABC_NAMESPACE::GABC_IGTArray< POD_T >, GT_DAInherit, GT_DAValues< T >, GT_GEOElementId, GT_DARandom, GT_DAIndexedString, and GT_DABool.

virtual bool GT_DataArray::getPointerAliasing ( const void data) const
inlinevirtual

Return "true" if there's pointer aliasing.

Reimplemented in GT_DAList, GT_DAInherit, and GT_DAValues< T >.

Definition at line 71 of file GT_DataArray.h.

virtual void GT_DataArray::getRange ( exint lo,
exint hi,
int  tuple_idx = 0 
) const
virtual

Get the range of values in the array

virtual void GT_DataArray::getRange ( fpreal lo,
fpreal hi,
int  tidx = 0 
) const
virtual

Get the range of values in the array

const fpreal* GT_DataArray::getRealArray ( GT_DataArrayHandle buffer) const

Get raw access to the data buffer (or fill the data array passed in) If the array is unable to provide a raw pointer to the underlying data, the GT_DataArrayHandle will be allocated to store the data, and it's raw data will be returned.

This means that the data returned will be destructed when the buffer is destructed. Beware.

virtual GT_String GT_DataArray::getS ( GT_Offset  offset,
int  idx = 0 
) const
pure virtual
virtual bool GT_DataArray::getSA ( UT_StringArray a,
GT_Offset  offset 
) const
inlinevirtual

Get data out of the data array

Reimplemented in GT_GEOElementArray.

Definition at line 98 of file GT_DataArray.h.

virtual GT_Offset GT_DataArray::getStringIndex ( GT_Offset  offset,
int  idx = 0 
) const
pure virtual

When an array of strings is based on an indexed list of strings, this method can be used to query each element's index. If the strings are not indexed, the method should return -1.

Implemented in GT_DANumeric< T >, GT_GEOElementArray, GABC_NAMESPACE::GABC_IGTArray< POD_T >, GT_DAConstantValue< T_POD >, GT_DARange, GT_DAIndexedString, GT_DAParametric, GT_DAValues< T >, GT_DAList, GT_GEOElementId, GT_DABool, and GT_DARandom.

virtual GT_Size GT_DataArray::getStringIndexCount ( ) const
pure virtual

When an array of strings is based on an indexed list of strings, this method can be used to query the maximum number of indices. If the strings are not indexed, the method should return -1.

Implemented in GT_DANumeric< T >, GT_GEOElementArray, GABC_NAMESPACE::GABC_IGTArray< POD_T >, GT_DAConstantValue< T_POD >, GT_DARange, GT_DAParametric, GT_DAIndexedString, GT_DAValues< T >, GT_DAList, GT_GEOElementId, GT_DABool, and GT_DARandom.

virtual void GT_DataArray::getStrings ( UT_StringArray strings) const
virtual

When an array of strings is based on an indexed list of strings, this method can be used to extract all the strings. If an index is not used, the string array may contain a NULL pointer. When you call getStringIndex(), you can look up directly into the strings array returned here.

Note, if the strings are not stored as an indexed list, this method will return an empty array.

Reimplemented in GT_DAIndexedString.

virtual GT_Size GT_DataArray::getTupleSize ( ) const
pure virtual
virtual GT_Type GT_DataArray::getTypeInfo ( ) const
virtual
virtual uint8 GT_DataArray::getU8 ( GT_Offset  offset,
int  idx = 0 
) const
pure virtual
virtual const uint8* GT_DataArray::getU8Array ( GT_DataArrayHandle buffer) const
virtual

Get raw access to the data buffer (or fill the data array passed in) If the array is unable to provide a raw pointer to the underlying data, the GT_DataArrayHandle will be allocated to store the data, and it's raw data will be returned.

This means that the data returned will be destructed when the buffer is destructed. Beware.

Reimplemented in GT_DANumeric< T >, and GABC_NAMESPACE::GABC_IGTArray< POD_T >.

template<typename T >
T GT_DataArray::getValue ( GT_Offset  index) const
inline

Public accessor for POD types.

Definition at line 579 of file GT_DataArray.h.

virtual GT_DataArrayHandle GT_DataArray::harden ( ) const
virtual

Create a "hardened" version of the array.

Reimplemented in GT_DAConstantValue< T_POD >, GT_DAParametric, GT_DANumeric< T >, GT_DARandom, GT_DAIndexedString, and GT_DABool.

virtual bool GT_DataArray::hasArrayEntries ( ) const
inlinevirtual

Returns "true" if each entry is an array.

Reimplemented in GT_GEOElementArray.

Definition at line 68 of file GT_DataArray.h.

void GT_DataArray::import ( GT_Offset  idx,
int32 data,
GT_Size  size = 0 
) const
inline

Extract data out of the array in a template friendly fashion. Unlike the get() methods, these methods will always copy data into the buffers. If the size is 0, the tuple size will be used. The data buffer must be big enough.

If the size given is larger than getTupleSize(), only the first getTupleSize() elements will be filled out (leaving the others untouched).

Definition at line 165 of file GT_DataArray.h.

void GT_DataArray::import ( GT_Offset  idx,
int64 data,
GT_Size  size = 0 
) const
inline

Extract data out of the array in a template friendly fashion. Unlike the get() methods, these methods will always copy data into the buffers. If the size is 0, the tuple size will be used. The data buffer must be big enough.

If the size given is larger than getTupleSize(), only the first getTupleSize() elements will be filled out (leaving the others untouched).

Definition at line 167 of file GT_DataArray.h.

void GT_DataArray::import ( GT_Offset  idx,
fpreal16 data,
GT_Size  size = 0 
) const
inline

Extract data out of the array in a template friendly fashion. Unlike the get() methods, these methods will always copy data into the buffers. If the size is 0, the tuple size will be used. The data buffer must be big enough.

If the size given is larger than getTupleSize(), only the first getTupleSize() elements will be filled out (leaving the others untouched).

Definition at line 169 of file GT_DataArray.h.

void GT_DataArray::import ( GT_Offset  idx,
fpreal32 data,
GT_Size  size = 0 
) const
inline

Extract data out of the array in a template friendly fashion. Unlike the get() methods, these methods will always copy data into the buffers. If the size is 0, the tuple size will be used. The data buffer must be big enough.

If the size given is larger than getTupleSize(), only the first getTupleSize() elements will be filled out (leaving the others untouched).

Definition at line 171 of file GT_DataArray.h.

void GT_DataArray::import ( GT_Offset  idx,
fpreal64 data,
GT_Size  size = 0 
) const
inline

Extract data out of the array in a template friendly fashion. Unlike the get() methods, these methods will always copy data into the buffers. If the size is 0, the tuple size will be used. The data buffer must be big enough.

If the size given is larger than getTupleSize(), only the first getTupleSize() elements will be filled out (leaving the others untouched).

Definition at line 173 of file GT_DataArray.h.

void GT_DataArray::import ( GT_Offset  idx,
UT_ValArray< fpreal32 > &  data 
) const
inline

Extract data out of the array in a template friendly fashion. Unlike the get() methods, these methods will always copy data into the buffers. If the size is 0, the tuple size will be used. The data buffer must be big enough.

If the size given is larger than getTupleSize(), only the first getTupleSize() elements will be filled out (leaving the others untouched).

Definition at line 175 of file GT_DataArray.h.

void GT_DataArray::import ( GT_Offset  idx,
UT_ValArray< int32 > &  data 
) const
inline

Extract data out of the array in a template friendly fashion. Unlike the get() methods, these methods will always copy data into the buffers. If the size is 0, the tuple size will be used. The data buffer must be big enough.

If the size given is larger than getTupleSize(), only the first getTupleSize() elements will be filled out (leaving the others untouched).

Definition at line 177 of file GT_DataArray.h.

void GT_DataArray::import ( GT_Offset  idx,
uint8 data,
GT_Size  size = 0,
fpreal  black = 0,
fpreal  white = 1 
) const
inline

Extract data out of the array in a template friendly fashion. Unlike the get() methods, these methods will always copy data into the buffers. If the size is 0, the tuple size will be used. The data buffer must be big enough.

If the size given is larger than getTupleSize(), only the first getTupleSize() elements will be filled out (leaving the others untouched).

Definition at line 179 of file GT_DataArray.h.

static bool GT_DataArray::isBigInteger ( GT_Size  size)
inlinestatic

Quick & dirty test to see if a size is bigger than a 32 bit int.

Definition at line 336 of file GT_DataArray.h.

bool GT_DataArray::isEqual ( const GT_DataArray src) const

Compare whether two data arrays are equal.

virtual bool GT_DataArray::isValid ( void  ) const
inlinevirtual

Data array is valid; can be sampled from.

Reimplemented in GT_GEOElementArray, GT_DAIndirect, GT_DAList, and GT_DAInherit.

Definition at line 75 of file GT_DataArray.h.

template<typename T >
T GT_DataArray::lerpValue ( GT_Offset  i0,
GT_Offset  i1,
fpreal  t 
) const
inline

Definition at line 583 of file GT_DataArray.h.

static void GT_DataArray::operator delete ( void p,
size_t  size 
)
static

For memory tracking, we override the new/delete operators

static void* GT_DataArray::operator new ( size_t  size)
static

For memory tracking, we override the new/delete operators

static void* GT_DataArray::operator new ( size_t  size,
void p 
)
static

For memory tracking, we override the new/delete operators

bool GT_DataArray::save ( UT_JSONWriter w,
bool  flat = true 
) const

Save array to a JSON stream. The 'flat' determines how to output arrays with a tuple size greater than 1. If 'flat' is true, the output will be an uninterrupted stream of values. If 'flat' is false, then the output will look something like [[1,2,3],[4,5,6], ... ]

void GT_DataArray::setDataId ( int64  id)
inline

Set the data id - This is used by geometry arrays to copy over the data id from GA. As above, you take responsibility for all artifacts and crashes if you set this incorrectly. Do not set this if you don't know how data IDs work.

Definition at line 364 of file GT_DataArray.h.

template<typename T_POD >
void GT_DataArray::t_extendedFill ( T_POD *  dest,
GT_Offset  start,
GT_Size  length,
int  tsize,
int  nrepeats,
int  stride 
) const
protected

Templated method to fill an array.

virtual void GT_DataArray::updateGeoDetail ( const GU_ConstDetailHandle dtl,
const char *  attrib_name,
GT_Owner  attrib_owner,
const int  expected_size 
)
inlinevirtual

Update cached data, in case the underlying attribute changed.

Reimplemented in GT_GEOAutoNormalArray, GT_GEOElementArray, GT_DAIndirect, and GT_DAInherit.

Definition at line 367 of file GT_DataArray.h.


The documentation for this class was generated from the following file: