16 #ifndef __GA_ATITopology__
17 #define __GA_ATITopology__
19 #define USE_PAGEARRAY_TOPOLOGY 1
20 #if USE_PAGEARRAY_TOPOLOGY
50 static void registerType();
60 {
return theAttributeType->getTypeName(); }
65 return attrib && &attrib->
getType() == theAttributeType;
70 if (attrib && &attrib->
getType() == theAttributeType)
71 return static_cast<GA_ATITopology *>(attrib);
77 if (attrib && &attrib->
getType() == theAttributeType)
78 return static_cast<const GA_ATITopology *>(attrib);
107 {
return theAIFMerge; }
113 {
return theAIFCopyData; }
129 #if USE_PAGEARRAY_TOPOLOGY
130 return GA_Offset(myData.getGuaranteedInt(ai));
132 if (myDataPageTableI16)
133 return GA_Offset(myDataPageTableI16->get(ai));
134 if (myDataPageTableI32)
135 return GA_Offset(myDataPageTableI32->get(ai));
136 return GA_Offset(myDataPageTableI64->get(ai));
145 #if USE_PAGEARRAY_TOPOLOGY
147 myData.set(ai,
int64(v));
151 if (myDataPageTableI16)
153 myDataPageTableI16->set(ai, v);
155 else if (myDataPageTableI32)
157 myDataPageTableI32->set(ai, v);
161 myDataPageTableI64->set(ai, v);
169 return myData.isPageConstant(pageno);
180 #if USE_PAGEARRAY_TOPOLOGY
181 return myData.getStorage();
183 return myData->getStorage();
243 #if USE_PAGEARRAY_TOPOLOGY
300 #if USE_PAGEARRAY_TOPOLOGY
305 void updatePagePointers();
310 bool myUnresolvedMerge;
312 #if !USE_PAGEARRAY_TOPOLOGY
325 friend class ga_TopologyCopy;
A class to manage an ordered array which has fixed offset handles.
static SYS_FORCE_INLINE bool isType(const GA_Attribute *attrib)
Definition of a geometry attribute.
GA_Storage getStorage() const
Used to pass options and map offset values during saving.
const GA_AIFMerge * getAIFMerge() const override
Merge interface.
SYS_FORCE_INLINE GA_Offset getLink(GA_Offset ai) const
static SYS_FORCE_INLINE const UT_StringHolder & getTypeName()
getFileOption("OpenEXR:storage") storage
SYS_FORCE_INLINE const GA_IndexMap & getIndexMap() const
SYS_FORCE_INLINE bool isPageConstant(GA_PageNum pageno) const
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
WriteConcurrence getSupportedWriteConcurrence() const override
Data is paged, so concurrent writes to separate pages supported.
bool matchesStorage(const GA_Attribute *that) const override
JSON reader class which handles parsing of JSON or bJSON files.
virtual bool setArraySize(GA_Offset size)=0
Class which writes ASCII or binary JSON streams.
SYS_FORCE_INLINE TO_T UTverify_cast(FROM_T from)
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
static SYS_FORCE_INLINE const GA_ATITopology * cast(const GA_Attribute *attrib)
GA_PageArray< void, 1, true, false > DataType
virtual void tryCompressAllPages(GA_Offset start_offset=GA_Offset(0), GA_Offset end_offset=GA_INVALID_OFFSET)=0
exint GA_Size
Defines the bit width for index and offset types in GA.
SYS_FORCE_INLINE const GA_AttributeType & getType() const
#define GA_INVALID_OFFSET
GA_AttributeOwner getLinkOwner() const
void setUnresolvedMergeFlag(bool f)
virtual void replace(const GA_Attribute &src)=0
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_ATITopology * cast(GA_Attribute *attrib)
An array of numbers with various storage types.
Defragmentation of IndexMaps.
bool getUnresolvedMergeFlag() const
GLuint const GLchar * name
GLboolean GLboolean GLboolean b
Concurrent writes to separate pages supported.
Attribute Interface class to copy attribute data.
GLubyte GLubyte GLubyte GLubyte w
const DataType & getData() const
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
static SYS_FORCE_INLINE const GA_AttributeType & getType()
SYS_FORCE_INLINE void setLink(GA_Offset ai, GA_Offset v)