HDK
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups 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 int8 getI8 (GT_Offset offset, int idx=0) const
 
virtual int16 getI16 (GT_Offset offset, int idx=0) const
 
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 int8getI8Array (GT_DataArrayHandle &buffer) const
 
virtual const int16getI16Array (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, int8 *data, GT_Size size=0) const
 
void import (GT_Offset idx, int16 *data, GT_Size size=0) 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 (int8 *data, GT_Offset start, GT_Size length, int tsize, int stride=-1) const
 
void fillArray (int16 *data, GT_Offset start, GT_Size length, int tsize, int stride=-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 (int8 *data, GT_Offset start, GT_Size length, int tsize, int nrepeats, int stride=-1) const
 
virtual void extendedFill (int16 *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 int8get (GT_Offset i, int8 *store, int sz) const
 
virtual const int16get (GT_Offset i, int16 *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, int8 *data, GT_Size size) const
 
virtual void doImport (GT_Offset idx, int16 *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 (int8 *data, GT_Offset start, GT_Size length, int tuple_size, int stride) const
 
virtual void doFillArray (int16 *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 627 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 387 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 >, GABC_NAMESPACE::GABC_IGTArray< POD_T >, GT_GEOElementArray, GT_DAList, and GT_GEOElementId.

Definition at line 429 of file GT_DataArray.h.

virtual void GT_DataArray::doFillArray ( int8 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 433 of file GT_DataArray.h.

virtual void GT_DataArray::doFillArray ( int16 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 436 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 439 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 442 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 445 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 448 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 451 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 455 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 513 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 521 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 >, GABC_NAMESPACE::GABC_IGTArray< POD_T >, GT_GEOElementArray, GT_DAList, and GT_DABool.

virtual void GT_DataArray::doImport ( GT_Offset  idx,
int8 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 >, GABC_NAMESPACE::GABC_IGTArray< POD_T >, GT_GEOElementArray, GT_DAList, and GT_DABool.

virtual void GT_DataArray::doImport ( GT_Offset  idx,
int16 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 >, GABC_NAMESPACE::GABC_IGTArray< POD_T >, GT_GEOElementArray, 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 >, GABC_NAMESPACE::GABC_IGTArray< POD_T >, GT_GEOElementArray, 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 >, GABC_NAMESPACE::GABC_IGTArray< POD_T >, GT_GEOElementArray, 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 >, GABC_NAMESPACE::GABC_IGTArray< POD_T >, GT_GEOElementArray, 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 >, GABC_NAMESPACE::GABC_IGTArray< POD_T >, GT_GEOElementArray, 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 >, GABC_NAMESPACE::GABC_IGTArray< POD_T >, GT_GEOElementArray, 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 289 of file GT_DataArray.h.

virtual void GT_DataArray::extendedFill ( int8 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 295 of file GT_DataArray.h.

virtual void GT_DataArray::extendedFill ( int16 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 301 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 307 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 313 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 319 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 325 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 331 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 271 of file GT_DataArray.h.

void GT_DataArray::fillArray ( int8 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 222 of file GT_DataArray.h.

void GT_DataArray::fillArray ( int16 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 225 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 228 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 231 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 234 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 237 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 240 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 243 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 255 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 262 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 407 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 int8* GT_DataArray::get ( GT_Offset  i,
int8 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 int16* GT_DataArray::get ( GT_Offset  i,
int16 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, GABC_NAMESPACE::GABC_IGTArray< POD_T >, and GT_DAValues< 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 105 of file GT_DataArray.h.

virtual int16 GT_DataArray::getI16 ( GT_Offset  offset,
int  idx = 0 
) const
inlinevirtual

Get data out of the data array

Definition at line 89 of file GT_DataArray.h.

virtual const int16* GT_DataArray::getI16Array ( 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 >.

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 int8 GT_DataArray::getI8 ( GT_Offset  offset,
int  idx = 0 
) const
inlinevirtual

Get data out of the data array

Definition at line 87 of file GT_DataArray.h.

virtual const int8* GT_DataArray::getI8Array ( 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 >.

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 107 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 >, GABC_NAMESPACE::GABC_IGTArray< POD_T >, GT_GEOElementArray, GT_DAConstantValue< T_POD >, GT_DARange, GT_DAIndexedString, GT_DAParametric, GT_DAValues< T >, GusdGT_VtStringArray< T >, GT_DAList, GT_GEOElementId, GT_DABool, and GT_DARandom.

virtual int64 GT_DataArray::getMemoryUsage ( ) const
pure virtual
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 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 102 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 >, GABC_NAMESPACE::GABC_IGTArray< POD_T >, GT_GEOElementArray, GT_DAConstantValue< T_POD >, GT_DARange, GT_DAIndexedString, GT_DAParametric, GT_DAValues< T >, GusdGT_VtStringArray< 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 >, GABC_NAMESPACE::GABC_IGTArray< POD_T >, GT_GEOElementArray, GT_DAConstantValue< T_POD >, GT_DARange, GT_DAParametric, GT_DAIndexedString, GT_DAValues< T >, GusdGT_VtStringArray< 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_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 617 of file GT_DataArray.h.

virtual GT_DataArrayHandle GT_DataArray::harden ( ) const
virtual
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,
int8 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,
int16 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,
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 175 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 177 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 179 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 181 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 183 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 185 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 187 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 189 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 366 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 621 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 394 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 397 of file GT_DataArray.h.


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