13 #ifndef __GA_ATIDict__
14 #define __GA_ATIDict__
43 {
return theAttributeType->getTypeName(); }
50 return attrib && &attrib->
getType() == theAttributeType;
55 if (attrib && &attrib->
getType() == theAttributeType)
56 return static_cast<GA_ATIDict *>(attrib);
62 if (attrib && &attrib->
getType() == theAttributeType)
63 return static_cast<const GA_ATIDict *>(attrib);
87 {
return myAIFSharedDictTuple; }
137 {
return getDict(offset, component); }
140 {
return getDictIndex(offset, component); }
146 {
return setDict(offset, opt, component); }
148 { tupleSet(offset, i, component); }
150 { setDictIndex(offset, i, component); }
172 return myHandles.isPageConstant(pagenum);
196 friend class ga_DictCopyData;
197 friend class ga_DictMerge;
198 friend class ga_DictCompare;
199 friend class ga_DictTuple;
200 friend class ga_DictJSON;
224 { setDict(offset, opt, tuple); }
227 { setDict(range, opt, tuple); }
231 { setDictIndex(offset, idx, tuple); }
234 { setDictIndex(range, idx, tuple); }
252 volatile bool myHasChanges;
269 index = myAttribute->addDictReference(opt);
273 myRefCountChanges[
index] += -1;
A class to manage an ordered array which has fixed offset handles.
HandleArrayType myHandles
GA_DictIndexType addDictReference(const UT_OptionsHolder &opt)
Definition of a geometry attribute.
A specialization of GA_AIFDictTuple to access "shared strings".
GA_Attribute * doClone(const GA_IndexMap &index_map, const UT_StringHolder &name) const override
Create a new ATIBlob attribute. Sub-classes must implement this.
void setHolder(const GA_Range &range, const UT_OptionsHolder &opt, int tuple=0)
static SYS_FORCE_INLINE const GA_AttributeType & getType()
A simple ATI to store aribtrary "blobs" of data in an attribute.
Standard user attribute level.
static SYS_FORCE_INLINE GA_ATIDict * cast(GA_Attribute *attrib)
SYS_FORCE_INLINE const GA_AttributeType & getType() const
void setHolderIndex(const GA_Range &range, GA_DictIndexType idx, int tuple=0)
A range of elements in an index-map.
static SYS_FORCE_INLINE const UT_StringHolder & getTypeName()
static void registerType()
SYS_FORCE_INLINE bool hasChanges() const
#define GA_INVALID_DICT_INDEX
static GA_Attribute * create(const GA_IndexMap &index_map, const UT_StringHolder &name, int tuple_size)
const GA_AIFSharedDictTuple * getAIFSharedDictTuple() const override
Return the attribute's shared options tuple interface or NULL.
GA_BlobIndex GA_DictIndexType
void setHolderIndex(GA_Offset offset, GA_DictIndexType idx, int tuple=0)
SYS_FORCE_INLINE bool isPageConstant(GA_PageNum pagenum) const
void setHolder(GA_Offset offset, const UT_OptionsHolder &opt, int component=0)
GLuint const GLchar * name
const HandleArrayType & getHandleData() const
void setHolderIndex(GA_Offset offset, GA_DictIndexType i, int component=0)
GLfloat GLfloat GLfloat GLfloat h
GA_DictIndexType getHolderIndex(GA_Offset offset, int component=0) const
static GA_Attribute * create(const GA_IndexMap &index_map, GA_AttributeScope scope, const UT_StringHolder &name, int tuple_size, const GA_AttributeOptions *attribute_options=NULL)
static SYS_FORCE_INLINE const GA_ATIDict * cast(const GA_Attribute *attrib)
static SYS_FORCE_INLINE bool isType(const GA_Attribute *attrib)
const GA_AIFJSON * getAIFJSON() const override
Attribute Interface for file I/O.
virtual bool debugValidateArrayCapacity(GA_Offset sz) const
Debug validation of allocated array size.
void setHolder(GA_Offset offset, const UT_OptionsHolder &opt, int tuple=0)
const UT_OptionsHolder & getHolder(GA_Offset offset, int component=0) const
void setDictIndex(GA_Offset offset, GA_DictIndexType i, int component=0)
GA_PageArray< int32 > HandleArrayType