HDK
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
GT_DAIndirect Class Reference

An array to handle indirect references (i.e. shared items) More...

#include <GT_DAIndirect.h>

+ Inheritance diagram for GT_DAIndirect:

Public Member Functions

 GT_DAIndirect ()
 Default constructor. More...
 
 GT_DAIndirect (const GT_DataArrayHandle &indirect, const GT_DataArrayHandle &data, bool flatten_nested=false)
 Convenience constructor. More...
 
 GT_DAIndirect (const GT_DAIndirect &src)
 Copy constructor. More...
 
 ~GT_DAIndirect () override
 Destructor. More...
 
const char * className () const override
 
bool isValid () const override
 Data array is valid; can be sampled from. More...
 
void updateGeoDetail (const GU_ConstDetailHandle &dtl, const char *attrib_name, GT_Owner attrib_owner, const int expected_size) override
 Update cached data, in case the underlying attribute changed. More...
 
void init (const GT_DataArrayHandle &indirect, const GT_DataArrayHandle &data, bool flatten_nested)
 Initialize data from an indirect array of indices and a data array. More...
 
const GT_DataArrayHandlegetIndirect () const
 
int64 getDataId () const override
 
GT_Size itemSize (GT_Offset offset) const override
 Return the number of elements in the array for the given item. More...
 
GT_Size getTotalArrayEntries () const override
 
- Public Member Functions inherited from GT_DAInherit
 GT_DAInherit ()
 Default constructor. More...
 
 GT_DAInherit (const GT_DataArrayHandle &data)
 Convenience constructor. More...
 
 GT_DAInherit (const GT_DAInherit &src)
 Copy constructor. More...
 
 ~GT_DAInherit () override
 
void init (const GT_DataArrayHandle &data)
 
const GT_DataArrayHandlereferencedData () const
 
GT_Storage getStorage () const override
 
GT_Size getTupleSize () const override
 
GT_Type getTypeInfo () const override
 
int64 getMemoryUsage () const override
 
bool hasArrayEntries () const override
 
GT_Size itemSize (GT_Offset offset) const override
 
GT_Size getTotalArrayEntries () const override
 
bool getPointerAliasing (const void *data) const override
 Return "true" if there's pointer aliasing. More...
 
bool isValid () const override
 
int64 getDataId () const override
 
void updateGeoDetail (const GU_ConstDetailHandle &dtl, const char *attrib_name, GT_Owner attrib_owner, const int expected_size) override
 
- Public Member Functions inherited from GT_DataArray
 GT_DataArray ()
 
 GT_DataArray (const GT_DataArray &src)
 
virtual ~GT_DataArray ()
 
virtual GT_DataArrayHandle harden () const
 Create a "hardened" version of the array. More...
 
virtual GT_Size entries () const =0
 Number of entries in the array. More...
 
virtual const voidgetBackingData () const
 
template<typename T >
const TgetArray (GT_DataArrayHandle &buffer) const
 Template-friendly version of getU8Array() and related methods. More...
 
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 (UT_StringArray &result, int tuple_idx=0) const
 
virtual void fillStringArray (UT_StringArray &data, UT_ValArray< int > &sizes, GT_Offset start, GT_Size length) const
 
virtual GT_Size getDictIndexCount () const =0
 
virtual GT_Offset getDictIndex (GT_Offset offset, int idx=0) const =0
 
virtual void getIndexedDicts (UT_Array< UT_OptionsHolder > &dicts, UT_IntArray &indices) const =0
 
virtual void getDictionaries (UT_Array< UT_OptionsHolder > &dicts) const
 
virtual void fillDictionaryArray (UT_Array< UT_OptionsHolder > &data, UT_ValArray< int > &sizes, GT_Offset start, GT_Size length) 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
 
virtual bool isEqual (const GT_DataArray &src) const
 Compare whether two data arrays are equal. More...
 
bool getMinMax (fpreal64 *min, fpreal64 *max) const
 Enlarge a bounding box with values of this 3-tuple array. More...
 
bool enlargeBounds (UT_BoundingBox &b) const
 
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)
 
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 GT_Dict getDict (GT_Offset offset, int idx=0) const
 
virtual bool getDictA (UT_Array< UT_OptionsHolder > &a, GT_Offset offset) const
 
virtual bool getFA16 (UT_ValArray< fpreal16 > &a, GT_Offset offset) const
 
virtual bool getFA32 (UT_ValArray< fpreal32 > &a, GT_Offset offset) const
 
virtual bool getFA64 (UT_ValArray< fpreal64 > &a, GT_Offset offset) const
 
virtual bool getUA8 (UT_ValArray< uint8 > &a, GT_Offset offset) const
 
virtual bool getIA8 (UT_ValArray< int8 > &a, GT_Offset offset) const
 
virtual bool getIA16 (UT_ValArray< int16 > &a, GT_Offset offset) const
 
virtual bool getIA32 (UT_ValArray< int32 > &a, GT_Offset offset) const
 
virtual bool getIA64 (UT_ValArray< int64 > &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< fpreal16 > &data) const
 
void import (GT_Offset idx, UT_ValArray< fpreal32 > &data) const
 
void import (GT_Offset idx, UT_ValArray< fpreal64 > &data) const
 
void import (GT_Offset idx, UT_ValArray< uint8 > &data) const
 
void import (GT_Offset idx, UT_ValArray< int8 > &data) const
 
void import (GT_Offset idx, UT_ValArray< int16 > &data) const
 
void import (GT_Offset idx, UT_ValArray< int32 > &data) const
 
void import (GT_Offset idx, UT_ValArray< int64 > &data) const
 
void import (GT_Offset idx, UT_StringArray &data) const
 
void import (GT_Offset idx, UT_Array< UT_OptionsHolder > &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)
 
void fillArray (UT_Array< uint8 > &data, UT_Array< int > &sizes, GT_Offset start, GT_Size length) const
 
void fillArray (UT_Array< int8 > &data, UT_Array< int > &sizes, GT_Offset start, GT_Size length) const
 
void fillArray (UT_Array< int16 > &data, UT_Array< int > &sizes, GT_Offset start, GT_Size length) const
 
void fillArray (UT_Array< int32 > &data, UT_Array< int > &sizes, GT_Offset start, GT_Size length) const
 
void fillArray (UT_Array< int64 > &data, UT_Array< int > &sizes, GT_Offset start, GT_Size length) const
 
void fillArray (UT_Array< fpreal16 > &data, UT_Array< int > &sizes, GT_Offset start, GT_Size length) const
 
void fillArray (UT_Array< fpreal32 > &data, UT_Array< int > &sizes, GT_Offset start, GT_Size length) const
 
void fillArray (UT_Array< fpreal64 > &data, UT_Array< int > &sizes, GT_Offset start, GT_Size length) const
 
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
 
SYS_HashType hash () const
 
virtual SYS_HashType hashRange (exint begin, exint end) const
 
- Public Member Functions inherited from UT_IntrusiveRefCounter< GT_DataArray >
SYS_FORCE_INLINE UT_IntrusiveRefCounter () noexcept
 Default constructor: Sets counter to 0. More...
 
SYS_FORCE_INLINE UT_IntrusiveRefCounter (const UT_IntrusiveRefCounter &) noexcept
 Copy constructor: Sets counter to 0. More...
 
UT_IntrusiveRefCounteroperator= (const UT_IntrusiveRefCounter &) noexcept
 Assignment operator: Does not modify counter. More...
 
SYS_FORCE_INLINE uint32 use_count () const noexcept
 Return current counter. More...
 
SYS_FORCE_INLINE bool conditionalAddRef () noexcept
 

Static Public Member Functions

static int getUnmapThreshold ()
 
- Static Public Member Functions inherited from GT_DataArray
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)
 

Additional Inherited Members

- Protected Member Functions inherited from GT_DataArray
virtual bool computeMinMax (fpreal64 *min, fpreal64 *max) const
 
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...
 
template<typename T_POD >
void t_extendedFillArray (UT_Array< T_POD > &dest, UT_Array< int > &sizes, GT_Offset start, GT_Size length) const
 Templated method to fill an array attribute. 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< fpreal16 > &data) const
 
virtual void doImportArray (GT_Offset idx, UT_ValArray< fpreal32 > &data) const
 
virtual void doImportArray (GT_Offset idx, UT_ValArray< fpreal64 > &data) const
 
virtual void doImportArray (GT_Offset idx, UT_ValArray< uint8 > &data) const
 
virtual void doImportArray (GT_Offset idx, UT_ValArray< int8 > &data) const
 
virtual void doImportArray (GT_Offset idx, UT_ValArray< int16 > &data) const
 
virtual void doImportArray (GT_Offset idx, UT_ValArray< int32 > &data) const
 
virtual void doImportArray (GT_Offset idx, UT_ValArray< int64 > &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 doFillArrayAttr (UT_Array< uint8 > &data, UT_Array< int > &sizes, GT_Offset start, GT_Size length) const
 
virtual void doFillArrayAttr (UT_Array< int8 > &data, UT_Array< int > &sizes, GT_Offset start, GT_Size length) const
 
virtual void doFillArrayAttr (UT_Array< int16 > &data, UT_Array< int > &sizes, GT_Offset start, GT_Size length) const
 
virtual void doFillArrayAttr (UT_Array< int32 > &data, UT_Array< int > &sizes, GT_Offset start, GT_Size length) const
 
virtual void doFillArrayAttr (UT_Array< int64 > &data, UT_Array< int > &sizes, GT_Offset start, GT_Size length) const
 
virtual void doFillArrayAttr (UT_Array< fpreal16 > &data, UT_Array< int > &sizes, GT_Offset start, GT_Size length) const
 
virtual void doFillArrayAttr (UT_Array< fpreal32 > &data, UT_Array< int > &sizes, GT_Offset start, GT_Size length) const
 
virtual void doFillArrayAttr (UT_Array< fpreal64 > &data, UT_Array< int > &sizes, GT_Offset start, GT_Size length) 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...
 
- Protected Attributes inherited from GT_DAInherit
GT_DataArrayHandle myData
 

Detailed Description

An array to handle indirect references (i.e. shared items)

This class takes two GT_DataArrays. The indirect array should be an array of integers which are used to perform indirect lookup into the shared data array. For example:

GT_DataArray VertexList = [ 1, 4, 2, 3 ]
GT_DataArray &PointAttributes;
GT_DAIndirect attribs(VertexList, PointAttributes);

This allows the point attributes to be referenced by vertex number.

Definition at line 31 of file GT_DAIndirect.h.

Constructor & Destructor Documentation

GT_DAIndirect::GT_DAIndirect ( )
inline

Default constructor.

Definition at line 35 of file GT_DAIndirect.h.

GT_DAIndirect::GT_DAIndirect ( const GT_DataArrayHandle indirect,
const GT_DataArrayHandle data,
bool  flatten_nested = false 
)
inline

Convenience constructor.

Definition at line 40 of file GT_DAIndirect.h.

GT_DAIndirect::GT_DAIndirect ( const GT_DAIndirect src)
inline

Copy constructor.

Definition at line 49 of file GT_DAIndirect.h.

GT_DAIndirect::~GT_DAIndirect ( )
override

Destructor.

Member Function Documentation

const char* GT_DAIndirect::className ( ) const
inlineoverridevirtual

Implements GT_DataArray.

Definition at line 58 of file GT_DAIndirect.h.

int64 GT_DAIndirect::getDataId ( ) const
overridevirtual

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 from GT_DataArray.

const GT_DataArrayHandle& GT_DAIndirect::getIndirect ( ) const
inline

Definition at line 73 of file GT_DAIndirect.h.

GT_Size GT_DAIndirect::getTotalArrayEntries ( ) const
inlineoverridevirtual

Total number of array elements if this is an array attribute. Sum of each entry's array length, as each entry's array length can vary.

Reimplemented from GT_DataArray.

Definition at line 78 of file GT_DAIndirect.h.

static int GT_DAIndirect::getUnmapThreshold ( )
static
void GT_DAIndirect::init ( const GT_DataArrayHandle indirect,
const GT_DataArrayHandle data,
bool  flatten_nested 
)

Initialize data from an indirect array of indices and a data array.

bool GT_DAIndirect::isValid ( ) const
inlineoverridevirtual

Data array is valid; can be sampled from.

Reimplemented from GT_DataArray.

Definition at line 60 of file GT_DAIndirect.h.

GT_Size GT_DAIndirect::itemSize ( GT_Offset  ) const
inlineoverridevirtual

Return the number of elements in the array for the given item.

Reimplemented from GT_DataArray.

Definition at line 76 of file GT_DAIndirect.h.

void GT_DAIndirect::updateGeoDetail ( const GU_ConstDetailHandle dtl,
const char *  attrib_name,
GT_Owner  attrib_owner,
const int  expected_size 
)
overridevirtual

Update cached data, in case the underlying attribute changed.

Reimplemented from GT_DataArray.


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