13 #ifndef __GA_ATINumeric 
   14 #define __GA_ATINumeric 
   52     static void registerType();
 
   55     { 
return theAttributeType->getTypeName(); }
 
   62         return attrib && &attrib->
getType() == theAttributeType;
 
   67         if (attrib && &attrib->
getType() == theAttributeType)
 
   68             return static_cast<GA_ATINumeric *>(attrib);
 
   74         if (attrib && &attrib->
getType() == theAttributeType)
 
   75             return static_cast<const GA_ATINumeric *>(attrib);
 
  104                                 { 
return myAIFCopyData; }
 
  106                                 { 
return myAIFDelta; }
 
  108                                 { 
return myAIFEdit; }
 
  110                                 { 
return myAIFTuple; }
 
  112                                 { 
return myDoMath ? myAIFMath:myAIFNoMath; }
 
  114                                 { 
return myAIFMerge; }
 
  116                                 { 
return myAIFInterp; }
 
  118                                 { 
return myAIFCompare; }
 
  164     bool                 setTupleSize(
int size);
 
  192         if (name[0] != 
'u' || name[1] != 
'v')
 
  264         return tupleSet(desti, *
this, srci, -1);
 
  271         return tupleSet(desti, *UTverify_cast<const GA_ATINumeric*>(&
src), srci, -1);
 
  275         return tupleSet(desti, src, srci, -1);
 
  283               const GA_Range &srcrange) 
override final 
  285         return tupleSet(destrange, *
this, srcrange, -1);
 
  292         return tupleSet(destrange, *UTverify_cast<const GA_ATINumeric*>(&
src), srcrange, -1);
 
  296         return tupleSet(destrange, src, srcrange, -1);
 
  321         return myData.isPageConstant(pagenum);
 
  326     template<
typename SRC_DATA_T>
 
  329         myData.setPageConstant(pagenum, values);
 
  351     void                        updateIntegerTypeInfo();
 
  358     template <
typename T> 
inline bool 
  360     template <
typename T> 
inline bool 
  363     template <
typename T> 
inline bool 
  365     template <
typename T> 
inline bool 
  367     template <
typename T> 
inline bool 
  369     template <
typename T> 
inline bool 
  377     template <
typename T> 
inline bool 
  378         makeConstant(
T v, 
int vi);
 
  379     template <
typename T> 
inline bool 
  409     void                 mergeDestroyDestination(
const GA_MergeMap &map,
 
  425     friend class ga_NumericCopyData;
 
  426     friend class ga_NumericDelta;
 
  427     friend class ga_NumericEdit;
 
  428     template <
typename T> 
friend class ga_NumericEditDelta;
 
  429     template <
typename T> 
friend class ga_NumericEditSnapshot;
 
  430     friend class ga_NumericInterp;
 
  431     friend class ga_NumericJSON;
 
  432     friend class ga_NumericMarshal;
 
  433     friend class ga_NumericMath;
 
  434     friend class ga_NumericMerge;
 
  435     friend class ga_NumericTuple;
 
  436     friend class ga_NumericCompare;
 
  438     template <
typename T> 
friend class binderScalar;
 
  439     template <
typename T> 
friend class binderVector;
 
  440     template <
typename T, 
typename TB> 
friend class binderPage;
 
A class to manage an ordered array which has fixed offset handles. 
 
Definition of a geometry attribute. 
 
Data has no numeric representation. 
 
bool isNonArithmetic() const 
Some types, especially integers, may not want to be lerped. 
 
GA_PageArray< void,-1, true, false > DataType
 
UT_UniquePtr< const GA_ATINumeric > GA_ConstATINumericUPtr
 
Used to pass options and map offset values during saving. 
 
const GA_AIFCompare * getAIFCompare() const override
Return the attribute's comparison interface or NULL. 
 
void copyNonStorageMetadata(const GA_Attribute *that) override
 
const GA_AIFInterp * getAIFInterp() const override
Return the attribute's interpolation interface or NULL. 
 
static SYS_FORCE_INLINE bool isType(const GA_Attribute *attrib)
 
Class which stores the default values for a GA_Attribute. 
 
getFileOption("OpenEXR:storage") storage
 
Attribute Interface class to perform numeric operations on attributes. 
 
int getTupleSize() const 
Size of the AIFTuple, if it exists. If it doesn't, 1. 
 
const DataType & getData() const 
 
const GA_AIFMerge * getAIFMerge() const override
Return the attribute's merge interface or NULL. 
 
The merge map keeps track of information when merging details. 
 
virtual void reconstructElementBlock(GA_Offset offset, GA_Offset nelements)=0
 
GLboolean GLboolean GLboolean GLboolean a
 
static SYS_FORCE_INLINE const UT_StringHolder & getTypeName()
 
JSON reader class which handles parsing of JSON or bJSON files. 
 
ImageBuf OIIO_API min(Image_or_Const A, Image_or_Const B, ROI roi={}, int nthreads=0)
 
virtual bool setArraySize(GA_Offset size)=0
 
Class which writes ASCII or binary JSON streams. 
 
static GA_AIFCompare * myAIFCompare
 
SYS_FORCE_INLINE TO_T UTverify_cast(FROM_T from)
 
static GA_AIFMath * myAIFMath
 
virtual void countMemory(UT_MemoryCounter &counter, bool inclusive) const =0
 
virtual int64 getMemoryUsage(bool inclusive) const =0
 
virtual bool matchesStorage(const GA_Attribute *that) const 
 
bool copy(const GA_Range &destrange, const GA_Range &srcrange) overridefinal
 
virtual void tryCompressAllPages(GA_Offset start_offset=GA_Offset(0), GA_Offset end_offset=GA_INVALID_OFFSET)=0
 
SYS_FORCE_INLINE const GA_AttributeType & getType() const 
 
#define GA_INVALID_OFFSET
 
A range of elements in an index-map. 
 
std::unique_ptr< T, Deleter > UT_UniquePtr
A smart pointer for unique ownership of dynamically allocated objects. 
 
SYS_FORCE_INLINE const UT_StringHolder & getName() const 
 
virtual bool fill(const GA_Range &destrange, GA_Offset srci)
 
const GA_AIFEdit * getAIFEdit() const override
Return the attribute's edit interface or NULL. 
 
GLint GLint GLsizei GLint GLenum GLenum type
 
static const GA_AttributeType * theAttributeType
 
const GA_AIFTuple * getAIFTuple() const override
Return the attribute's tuple interface or NULL. 
 
static GA_AIFTuple * myAIFTuple
 
virtual void replace(const GA_Attribute &src)=0
 
static GA_AIFInterp * myAIFInterp
 
bool copy(GA_Offset desti, GA_Offset srci) overridefinal
 
Attribute Interface for merging attribute data between details. 
 
const GA_AIFCopyData * getAIFCopyData() const override
Return the attribute's copy interface or NULL. 
 
static SYS_FORCE_INLINE GA_ATINumeric * cast(GA_Attribute *attrib)
 
bool copy(const GA_Range &destrange, const GA_Attribute &src, const GA_Range &srcrange) overridefinal
 
bool isNan(const float x)
Return true if x is a NaN (Not-A-Number) value. 
 
Attribute Interface class to perform comparisons on attributes. 
 
SYS_FORCE_INLINE const char * c_str() const 
 
Defragmentation of IndexMaps. 
 
static GA_AIFEdit * myAIFEdit
 
GLuint const GLchar * name
 
GLboolean GLboolean GLboolean b
 
virtual void copyNonStorageMetadata(const GA_Attribute *that)
 
bool matchesStorage(const GA_Attribute *that) const override
 
const GA_AIFJSON * getAIFJSON() const override
 
SYS_FORCE_INLINE bool isPageConstant(GA_PageNum pagenum) const 
 
const GA_AIFDelta * getAIFDelta() const override
Return the attribute's delta interface or NULL. 
 
static const GA_AIFMath * myAIFNoMath
 
GLenum GLsizei GLsizei GLint * values
 
SYS_FORCE_INLINE GA_TypeInfo getTypeInfo() const 
 
bool copy(GA_Offset desti, const GA_Attribute &src, GA_Offset srci) overridefinal
 
Concurrent writes to separate pages supported. 
 
WriteConcurrence getSupportedWriteConcurrence() const override
Data is paged, so concurrent writes to separate pages supported. 
 
static SYS_FORCE_INLINE const GA_AttributeType & getType()
 
ImageBuf OIIO_API max(Image_or_Const A, Image_or_Const B, ROI roi={}, int nthreads=0)
 
static GA_AIFDelta * myAIFDelta
 
SYS_FORCE_INLINE void setPageConstant(GA_PageNum pagenum, const SRC_DATA_T *values)
 
static GA_AIFJSON * myAIFJSON
 
Attribute Interface class to copy attribute data. 
 
GLubyte GLubyte GLubyte GLubyte w
 
Attribute Interface for file I/O. 
 
bool shouldInterpretAsTexCoord(bool allow_float2=false) const 
 
static SYS_FORCE_INLINE const GA_ATINumeric * cast(const GA_Attribute *attrib)
 
virtual bool debugValidateArrayCapacity(GA_Offset sz) const 
Debug validation of allocated array size. 
 
bool copy(GA_Offset desti, const GA_ATINumeric &src, GA_Offset srci)
 
AIF to record changes to attribute values. 
 
virtual void hardenAllPages(GA_Offset start_offset=GA_Offset(0), GA_Offset end_offset=GA_INVALID_OFFSET)=0
 
virtual void defragment(const GA_Defragment &defrag)=0
 
Generic Attribute Interface class to access an attribute as a tuple. 
 
static GA_AIFCopyData * myAIFCopyData
 
UT_UniquePtr< GA_ATINumeric > GA_ATINumericUPtr
 
const GA_Defaults & getDefaults() const 
 
const GA_AIFMath * getAIFMath() const override
Return the attribute's math interface or NULL. 
 
bool copy(const GA_Range &destrange, const GA_ATINumeric &src, const GA_Range &srcrange)
 
GA_Storage getStorage() const 
 
static GA_AIFMerge * myAIFMerge