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

#include <GA_ATIGroupBool.h>

+ Inheritance diagram for GA_ElementGroup:

Public Member Functions

const GA_DetailgetDetail () const overridefinal
 
GA_DetailgetDetail ()
 
 GA_ElementGroup (const GA_Detail &detail, GA_AttributeOwner owner)
 
 ~GA_ElementGroup () override
 
int64 getMemoryUsage (bool inclusive) const override
 
void countMemory (UT_MemoryCounter &counter, bool inclusive) const override
 
bool isOrdered () const overridefinal
 Returns true if the group is currently ordered. More...
 
bool setOrdered (bool ordered)
 
void makeOrdered ()
 
void makeUnordered ()
 
void clearOrdered ()
 Clear all order information, including any mixed entries. More...
 
bool copyMembership (const GA_ATIGroupBool &src, bool copy_ordering=true)
 
GA_Offset findOffsetAtGroupIndex (GA_Size i) const
 
SYS_FORCE_INLINE void setElement (GA_Offset ai, bool v)
 
SYS_FORCE_INLINE void setElement (const GA_Range &it, bool v)
 NOTE: This cannot be used in parallel on an ordered group. More...
 
void toggleElement (GA_Offset ai)
 
void toggleElement (const GA_Range &it)
 NOTE: This cannot be used in parallel on an ordered group. More...
 
bool combine (const GA_Group *src) overridefinal
 
GA_ElementGroupoperator|= (const GA_ElementGroup &g)
 
SYS_FORCE_INLINE bool contains (GA_Offset offset) const
 
bool containsIndex (GA_Index ai) const
 
SYS_FORCE_INLINE bool containsOffset (GA_Offset offset) const
 
SYS_FORCE_INLINE bool containsAny (const GA_Range &range) const
 
SYS_FORCE_INLINE bool isGroupEmpty () const
 
SYS_FORCE_INLINE bool isEmpty () const
 Query whether the group is empty of primary elements. More...
 
bool isEmptyMix () const
 Query whether the group is empty of elements, primary or mixed. More...
 
GA_Size entries () const overridefinal
 Will return the number of primary elements. More...
 
virtual GA_Size entriesMix () const final
 Will return the total number of elements, primary and mixed. More...
 
GA_Size getGroupEntries () const
 
GA_Size computeGroupEntries () const
 
bool isMixed () const overridefinal
 Query if the group contains any mixed elements. More...
 
SYS_FORCE_INLINE void setOffset (GA_Offset ai, bool v)
 
void getConstantSpan (GA_Offset start, GA_Offset end, GA_Size &size, bool &value) const
 
void clear () override
 
void makeConstant (bool value)
 
void invalidateGroupEntries ()
 
bool needDestruction () const override
 Methods which can be overridden from GA_Attribute. More...
 
void destructElement (GA_Offset offset) override
 Callback invoked if needsDestruction() returns true. More...
 
void reconstructElementBlock (GA_Offset offset, GA_Offset nelements) override
 
void addAll () overridefinal
 Add all elements to the group. More...
 
void setEntries ()
 Add all elements to the group, only writing to real elements' offsets. More...
 
void toggleEntries ()
 Toggle membership of all elements. More...
 
WriteConcurrence getSupportedWriteConcurrence () const override
 
const GA_AIFCopyDatagetAIFCopyData () const override
 Return the attribute's copy interface or NULL. More...
 
const GA_AIFTuplegetAIFTuple () const override
 Return the attribute's tuple interface or NULL. More...
 
const GA_AIFInterp * getAIFInterp () const override
 Return the attribute's interpolation interface or NULL. More...
 
const GA_AIFMergegetAIFMerge () const override
 Return the attribute's merge interface or NULL. More...
 
const GA_AIFComparegetAIFCompare () const override
 Return the attribute's comparison interface or NULL. More...
 
GA_ElementGroupOrdergetOrdered ()
 
const GA_ElementGroupOrdergetOrdered () const
 
GA_ElementGroupgetGroup ()
 
const GA_ElementGroupgetGroup () const
 
GA_ElementGroupgetAttribute ()
 
const GA_ElementGroupgetAttribute () const
 
bool loadGroupH9 (UT_IStream &is)
 
bool loadGroupByIndexOrderH9 (const UT_BitArray &array)
 
bool saveGroupH9 (std::ostream &os, bool binary) const
 
bool debugValidateArrayCapacity (GA_Offset sz) const override
 Debug validation of allocated array size. More...
 
bool jsonSave (UT_JSONWriter &w, const GA_SaveMap &map) const
 
bool jsonLoad (UT_JSONParser &p, const GA_LoadMap &map)
 Load from a JSON stream. More...
 
bool jsonSaveData (UT_JSONWriter &w, const GA_SaveMap &map) const override
 
bool jsonLoadData (UT_JSONParser &p, const GA_LoadMap &map) override
 Load from a JSON stream. More...
 
bool stat (UT_WorkBuffer &info, uint level) const override
 Compute detailed information. More...
 
bool setArraySize (GA_Offset new_size) override
 Grow or shrink the array size. More...
 
GA_Offset getArraySize () const
 
SYS_FORCE_INLINE GA_DataBitArraygetData ()
 
SYS_FORCE_INLINE const
GA_DataBitArray
getData () const
 Returns the read-only raw bit array. More...
 
SYS_FORCE_INLINE bool isPageConstant (GA_PageNum pagenum) const
 
SYS_FORCE_INLINE bool getPageValue (GA_PageNum pagenum) const
 
SYS_FORCE_INLINE void setPageConstant (GA_PageNum pagenum, const bool value)
 Sets all elements of the specified page to the given value. More...
 
void tryCompressAllPages (GA_Offset start_offset=GA_Offset(0), GA_Offset end_offset=GA_INVALID_OFFSET) override
 Try to compress data pages. More...
 
void hardenAllPages (GA_Offset start_offset=GA_Offset(0), GA_Offset end_offset=GA_INVALID_OFFSET) override
 Harden data pages. More...
 
void copyNonStorageMetadata (const GA_Attribute *that) overridefinal
 
void replace (const GA_Attribute &src) overridefinal
 
void defragment (const GA_Defragment &defrag) override
 
void orEqual (const GA_ATIGroupBool *src)
 
void andEqual (const GA_ATIGroupBool *src)
 
void xorEqual (const GA_ATIGroupBool *src)
 
void subEqual (const GA_ATIGroupBool *src)
 
void toggleAll (GA_Size numelements)
 
GA_ElementGroupoperator&= (const GA_ElementGroup &g)
 
GA_ElementGroupoperator-= (const GA_ElementGroup &g)
 
GA_ElementGroupoperator^= (const GA_ElementGroup &g)
 
GA_ElementGroupoperator= (const GA_ElementGroup &g)
 
SYS_FORCE_INLINE void addIndex (GA_Index ai)
 
SYS_FORCE_INLINE void toggleIndex (GA_Index ai)
 
SYS_FORCE_INLINE void removeIndex (GA_Index ai)
 
SYS_FORCE_INLINE void addOffset (GA_Offset ai)
 
SYS_FORCE_INLINE void toggleOffset (GA_Offset ai)
 
SYS_FORCE_INLINE void removeOffset (GA_Offset ai)
 
SYS_FORCE_INLINE void addRange (const GA_Range &it)
 
SYS_FORCE_INLINE void toggleRange (const GA_Range &it)
 
SYS_FORCE_INLINE void removeRange (const GA_Range &it)
 
bool copy (GA_Offset desti, GA_Offset srci) overridefinal
 
bool copy (GA_Offset desti, const GA_Attribute &src, GA_Offset srci) overridefinal
 
bool copy (GA_Offset desti, const GA_ATIGroupBool &src, GA_Offset srci)
 
bool copy (const GA_Range &destrange, const GA_Range &srcrange) overridefinal
 
bool copy (const GA_Range &destrange, const GA_Attribute &src, const GA_Range &srcrange) overridefinal
 
bool copy (const GA_Range &destrange, const GA_ATIGroupBool &src, const GA_Range &srcrange)
 
bool fill (const GA_Range &destrange, GA_Offset srci) overridefinal
 
bool fill (const GA_Range &destrange, const GA_Attribute &src, GA_Offset srci) overridefinal
 
bool fill (const GA_Range &destrange, const GA_ATIGroupBool &src, GA_Offset srci)
 
- Public Member Functions inherited from GA_Attribute
 GA_Attribute (const GA_AttributeType &type, const GA_IndexMap &index_map, GA_AttributeScope scope, const UT_StringHolder &name)
 
virtual ~GA_Attribute ()
 
const GA_AttributeTypegetType () const
 
const GA_IndexMapgetIndexMap () const
 
const GA_DetailgetDetail () const
 
GA_DetailgetDetail ()
 
GA_AttributeOwner getOwner () const
 
GA_AttributeScope getScope () const
 
SYS_FORCE_INLINE GA_TypeInfo getTypeInfo () const
 
SYS_FORCE_INLINE void setTypeInfo (GA_TypeInfo type)
 
bool shouldInterpretAsTexCoord (bool allow_float2=false) const
 
GA_StorageClass getStorageClass () const
 Returns the approximate type of the attribute. More...
 
int getTupleSize () const
 Size of the AIFTuple, if it exists. If it doesn't, 1. More...
 
const UT_StringHoldergetName () const
 
const UT_StringHoldergetFullName () const
 
SYS_FORCE_INLINE GA_DataId getDataId () const
 
SYS_FORCE_INLINE void assignNewDataId ()
 
SYS_FORCE_INLINE void bumpDataId ()
 
SYS_FORCE_INLINE void clearDataId ()
 
SYS_FORCE_INLINE void cloneDataId (const GA_Attribute &src, bool allow_clear=false)
 
SYS_FORCE_INLINE void cloneOrBumpDataId (const GA_Attribute &src, bool allow_clear=false)
 NOTE: Just call cloneDataId(src). More...
 
virtual const GA_AIFDeltagetAIFDelta () const
 Return the attribute's delta interface or NULL. More...
 
virtual const GA_AIFMathgetAIFMath () const
 Return the attribute's math interface or NULL. More...
 
virtual const GA_AIFBlobgetAIFBlob () const
 Return the attribute's blob interface or NULL. More...
 
virtual const GA_AIFBlobArraygetAIFBlobArray () const
 Return the attribute's blob array interface or NULL. More...
 
virtual const GA_AIFStringTuplegetAIFStringTuple () const
 Return the attribute's string tuple interface or NULL. More...
 
virtual const
GA_AIFSharedStringTuple
getAIFSharedStringTuple () const
 Return the attribute's shared string tuple interface or NULL. More...
 
virtual const
GA_AIFSharedStringArray
getAIFSharedStringArray () const
 Return the attribute's shared string array interface or NULL. More...
 
virtual const
GA_AIFSharedDictTuple
getAIFSharedDictTuple () const
 Return the attribute's shared options tuple interface or NULL. More...
 
virtual const
GA_AIFSharedDictArray
getAIFSharedDictArray () const
 Return the attribute's shared options tuple interface or NULL. More...
 
virtual const GA_AIFIndexPairgetAIFIndexPair () const
 Return the attribute's index pair interface or NULL. More...
 
virtual const GA_AIFBlindDatagetAIFBlindData () const
 Return the attribute's blind data interface or NULL. More...
 
virtual const GA_AIFEditgetAIFEdit () const
 Return the attribute's edit interface or NULL. More...
 
virtual const GA_AIFNumericArraygetAIFNumericArray () const
 Return the attribute's arraydata interface or NULL. More...
 
virtual const GA_AIFStatgetAIFStat () const
 
template<typename T >
const TgetAIF () const
 Generic method for getting an AIF by type. More...
 
const GA_AttributeOptionsgetOptions () const
 
GA_AttributeOptionsgetOptions ()
 
void setNonTransforming (bool val)
 
bool needsTransform (bool include_P=true) const
 
bool isDetached () const
 
void mergeOptions (const GA_AttributeOptions &src)
 Merge the options passed in with the options in the attribute. More...
 
bool importOption (const char *name, int &v) const
 
bool importOption (const char *name, bool &v) const
 
bool importOption (const char *name, fpreal32 &v) const
 
bool importOption (const char *name, fpreal64 &v) const
 
bool importOption (const char *name, UT_String &v) const
 
void setTailInitialization (bool onoff)
 
bool isTailInitialization () const
 Check whether the attribute is set to tail initialization. More...
 
void reconstructElement (GA_Offset offset)
 
virtual void compactStorage ()
 
virtual void batchDeletion ()
 
GA_Attributeclone (const GA_IndexMap &index_map, const UT_StringHolder &name, bool clone_options) const
 
bool jsonSaveDefinition (UT_JSONWriter &w) const
 Save the GA_Attribute-Definition section. More...
 
virtual const GA_AIFJSONgetAIFJSON () const
 Return the AIF to handle saving/loading of the private data section. More...
 
virtual int getSaveVersion () const
 
virtual bool matchesStorage (const GA_Attribute *that) const
 
GA_AttributeProxyHandle getProxy ()
 
GA_ConstAttributeProxyHandle getProxy () const
 
void setExportName (const char *external_name)
 
bool hasExportName () const
 
std::string getExportName () const
 
GA_CEAttributegetCEAttribute (GA_StorageClass storage, int &tuplesize, bool isarray, bool read, bool write)
 
GA_CEAttributegetCEAttribute (GA_StorageClass storage, GA_Precision precision, int &tuplesize, bool isarray, bool read, bool write)
 
void flushCEWriteCaches (bool clearwriteback=true)
 
bool hasPendingCEWriteBack () const
 
void flushCECaches ()
 Remove all CE Caches, copying back any marked as written to. More...
 
bool isActivelyStreamed () const
 
void setActivelyStreamed (bool isstreaming)
 
bool existedPriorToStream () const
 
void setExistedPriorToStream (bool preexisted)
 
bool hasFlag (AttribFlag flag) const
 
void setFlag (AttribFlag flag, bool onoff)
 
- Public Member Functions inherited from GA_Group
virtual ~GA_Group ()
 
const UT_StringHoldergetName () const
 
bool isInternal () const
 
bool getInternal () const
 
void setInternal (bool onOff)
 
bool isDetached () const
 
GA_GroupType classType () const
 
GA_GroupMaskType classMaskType () const
 
bool isElementGroup () const
 
SYS_FORCE_INLINE bool isEmpty () const
 
void clearEntries ()
 
virtual bool jsonShouldSave (const GA_SaveMap &map) const
 
bool jsonSaveDefinition (UT_JSONWriter &w, const char *type) const
 
void dump (std::ostream &os)
 A convenience function to do a JSON dump of the group contents. More...
 

Static Public Member Functions

static void registerType ()
 
static SYS_FORCE_INLINE const
UT_StringHolder
getTypeName ()
 
static SYS_FORCE_INLINE const
GA_AttributeType
getType ()
 
static SYS_FORCE_INLINE bool isType (const GA_Attribute *attrib)
 
static SYS_FORCE_INLINE
GA_ATIGroupBool
cast (GA_Attribute *attrib)
 
static SYS_FORCE_INLINE const
GA_ATIGroupBool
cast (const GA_Attribute *attrib)
 
static SYS_FORCE_INLINE bool isType (const GA_Group *group)
 
static SYS_FORCE_INLINE const
GA_ElementGroup
cast (const GA_Group *group)
 
static SYS_FORCE_INLINE
GA_ElementGroup
cast (GA_Group *group)
 
- Static Public Member Functions inherited from GA_Attribute
static bool jsonLoadDefinition (UT_JSONParser &p, GA_AttributeScope &scope, UT_WorkBuffer &type, UT_WorkBuffer &name, int64 &version, GA_AttributeOptions &options)
 Load the GA_Attribute-Definition section. More...
 
static GA_DataId nextDataId ()
 
- Static Public Member Functions inherited from GA_Group
static const char * groupType (GA_GroupType type)
 
static GA_GroupType groupType (const char *type)
 
static bool jsonLoadDefinition (UT_JSONParser &p, UT_WorkBuffer &type, UT_WorkBuffer &name, bool &internal)
 Load the GA_Group-Definition. More...
 

Protected Member Functions

 GA_ElementGroup (GA_Detail &detail, GA_AttributeOwner owner, const UT_StringHolder &name, bool internal, bool detached)
 
- Protected Member Functions inherited from GA_Attribute
int64 getBaseMemoryUsage () const
 
void setDetached (bool detached)
 Only called by GA_AttributeSet and GA_ElementGroup. More...
 
- Protected Member Functions inherited from GA_Group
 GA_Group (const UT_StringHolder &name, bool internal, GA_GroupType type, bool detached)
 

Friends

class GU_Group
 
class GU_ElementGroup
 
class GOP_GroupParse
 

Additional Inherited Members

- Public Types inherited from GA_Attribute
enum  WriteConcurrence { WRITE_CONCURRENCE_NONE, WRITE_CONCURRENCE_PAGE, WRITE_CONCURRENCE_ELEMENT }
 
enum  AttribFlag { FLAG_TAIL_INITIALIZE = 1, FLAG_STREAM_ACTIVE = 2, FLAG_STREAM_NOPREEXIST = 4 }
 

Detailed Description

Definition at line 54 of file GA_ATIGroupBool.h.

Constructor & Destructor Documentation

GA_ElementGroup::GA_ElementGroup ( GA_Detail detail,
GA_AttributeOwner  owner,
const UT_StringHolder name,
bool  internal,
bool  detached 
)
protected
GA_ElementGroup::GA_ElementGroup ( const GA_Detail detail,
GA_AttributeOwner  owner 
)
GA_ElementGroup::~GA_ElementGroup ( )
override

Member Function Documentation

void GA_ElementGroup::addAll ( )
inlinefinaloverridevirtual

Add all elements to the group.

Implements GA_Group.

Definition at line 421 of file GA_ATIGroupBool.h.

SYS_FORCE_INLINE void GA_ElementGroup::addIndex ( GA_Index  ai)
inline

Access elements of the group by ordered index rather than offset. Internally, this method just find the data offset and calls appropriate method.

Definition at line 333 of file GA_ATIGroupBool.h.

SYS_FORCE_INLINE void GA_ElementGroup::addOffset ( GA_Offset  ai)
inline

Access elements by their offset in the index map NOTE: When using addOffset, toggleOffset, removeOffset in parallel, you must call invalidateGroupEntries() afterward, else entries() may return an incorrect value. NOTE: These cannot be used in parallel on an ordered group.

Definition at line 359 of file GA_ATIGroupBool.h.

SYS_FORCE_INLINE void GA_ElementGroup::addRange ( const GA_Range it)
inline

Access elements by a GA_Range These have the advantage of being able to operate a page at a time when applicable. NOTE: These cannot be used in parallel on an ordered group.

Definition at line 384 of file GA_ATIGroupBool.h.

void GA_ElementGroup::andEqual ( const GA_ATIGroupBool src)

These methods only work on unordered groups.

static SYS_FORCE_INLINE GA_ATIGroupBool* GA_ElementGroup::cast ( GA_Attribute attrib)
inlinestatic

Definition at line 87 of file GA_ATIGroupBool.h.

static SYS_FORCE_INLINE const GA_ATIGroupBool* GA_ElementGroup::cast ( const GA_Attribute attrib)
inlinestatic

Definition at line 94 of file GA_ATIGroupBool.h.

static SYS_FORCE_INLINE const GA_ElementGroup* GA_ElementGroup::cast ( const GA_Group group)
inlinestatic

Definition at line 109 of file GA_ATIGroupBool.h.

static SYS_FORCE_INLINE GA_ElementGroup* GA_ElementGroup::cast ( GA_Group group)
inlinestatic

Definition at line 116 of file GA_ATIGroupBool.h.

void GA_ElementGroup::clear ( )
overridevirtual

Implements GA_Group.

void GA_ElementGroup::clearOrdered ( )

Clear all order information, including any mixed entries.

bool GA_ElementGroup::combine ( const GA_Group src)
finaloverridevirtual

Add all elements corresponding with src to this group. src can be a point, vertex, primitive, or edge group. Breakpoint groups won't crash, but may add more elements than required.

Reimplemented from GA_Group.

GA_Size GA_ElementGroup::computeGroupEntries ( ) const
SYS_FORCE_INLINE bool GA_ElementGroup::contains ( GA_Offset  offset) const
inline

Definition at line 260 of file GA_ATIGroupBool.h.

SYS_FORCE_INLINE bool GA_ElementGroup::containsAny ( const GA_Range range) const
inline

Definition at line 276 of file GA_ATIGroupBool.h.

bool GA_ElementGroup::containsIndex ( GA_Index  ai) const
inline

Definition at line 264 of file GA_ATIGroupBool.h.

SYS_FORCE_INLINE bool GA_ElementGroup::containsOffset ( GA_Offset  offset) const
inline
Examples:
tetprim/GEO_PrimTetra.C.

Definition at line 271 of file GA_ATIGroupBool.h.

bool GA_ElementGroup::copy ( GA_Offset  desti,
GA_Offset  srci 
)
inlinefinaloverridevirtual

Copy attribute values for a single element.

Reimplemented from GA_Attribute.

Definition at line 616 of file GA_ATIGroupBool.h.

bool GA_ElementGroup::copy ( GA_Offset  desti,
const GA_Attribute src,
GA_Offset  srci 
)
inlinefinaloverridevirtual

Copy attribute values for a single element.

Reimplemented from GA_Attribute.

Definition at line 621 of file GA_ATIGroupBool.h.

bool GA_ElementGroup::copy ( GA_Offset  desti,
const GA_ATIGroupBool src,
GA_Offset  srci 
)
inline

Copy attribute values for a single element.

Definition at line 629 of file GA_ATIGroupBool.h.

bool GA_ElementGroup::copy ( const GA_Range destrange,
const GA_Range srcrange 
)
inlinefinaloverridevirtual

Copy attribute values for a range of elements.

Reimplemented from GA_Attribute.

Definition at line 638 of file GA_ATIGroupBool.h.

bool GA_ElementGroup::copy ( const GA_Range destrange,
const GA_Attribute src,
const GA_Range srcrange 
)
inlinefinaloverridevirtual

Copy attribute values for a range of elements.

Reimplemented from GA_Attribute.

Definition at line 643 of file GA_ATIGroupBool.h.

bool GA_ElementGroup::copy ( const GA_Range destrange,
const GA_ATIGroupBool src,
const GA_Range srcrange 
)
inline

Copy attribute values for a range of elements.

Definition at line 650 of file GA_ATIGroupBool.h.

bool GA_ElementGroup::copyMembership ( const GA_ATIGroupBool src,
bool  copy_ordering = true 
)

Copy membership information from the source group. This will fail if the groups have different index maps. This will also copy over the ordered information if copy_ordering is set to true.

void GA_ElementGroup::copyNonStorageMetadata ( const GA_Attribute that)
finaloverridevirtual

In the case that we're copying from an attribute whose storage type matches this exactly, this function copies the metadata not associated with the storage, e.g. myOptions, excluding the name and the data ID.

Reimplemented from GA_Attribute.

void GA_ElementGroup::countMemory ( UT_MemoryCounter counter,
bool  inclusive 
) const
overridevirtual

Count memory usage using a UT_MemoryCounter in order to count shared memory correctly. If inclusive is true, the size of this object is counted, else only memory owned by this object is counted. If this is pointed to by the calling object, inclusive should be true. If this is contained in the calling object, inclusive should be false. (Its memory was already counted in the size of the calling object.)

NOTE: If you're implementing this in a direct subclass of GA_Attribute, call getBaseMemoryUsage() to get the amount of memory in the base class. If in a more distant descendant class, call Base::countMemory(counter, false) to count the memory in Base and above, excluding sizeof(Base).

Implements GA_Attribute.

bool GA_ElementGroup::debugValidateArrayCapacity ( GA_Offset  sz) const
overridevirtual

Debug validation of allocated array size.

Reimplemented from GA_Attribute.

void GA_ElementGroup::defragment ( const GA_Defragment defrag)
overridevirtual

Interface for defragmentation

Implements GA_Attribute.

void GA_ElementGroup::destructElement ( GA_Offset  offset)
overridevirtual

Callback invoked if needsDestruction() returns true.

Reimplemented from GA_Attribute.

GA_Size GA_ElementGroup::entries ( ) const
inlinefinaloverridevirtual

Will return the number of primary elements.

Implements GA_Group.

Definition at line 297 of file GA_ATIGroupBool.h.

virtual GA_Size GA_ElementGroup::entriesMix ( ) const
inlinefinalvirtual

Will return the total number of elements, primary and mixed.

Definition at line 300 of file GA_ATIGroupBool.h.

bool GA_ElementGroup::fill ( const GA_Range destrange,
GA_Offset  srci 
)
inlinefinaloverridevirtual

Assign all elements of a range from a single attribute value.

Reimplemented from GA_Attribute.

Definition at line 658 of file GA_ATIGroupBool.h.

bool GA_ElementGroup::fill ( const GA_Range destrange,
const GA_Attribute src,
GA_Offset  srci 
)
inlinefinaloverridevirtual

Assign all elements of a range from a single attribute value.

Reimplemented from GA_Attribute.

Definition at line 663 of file GA_ATIGroupBool.h.

bool GA_ElementGroup::fill ( const GA_Range destrange,
const GA_ATIGroupBool src,
GA_Offset  srci 
)
inline

Assign all elements of a range from a single attribute value.

Definition at line 671 of file GA_ATIGroupBool.h.

GA_Offset GA_ElementGroup::findOffsetAtGroupIndex ( GA_Size  i) const

Return GA offset of the Nth element of the group. NOTE: This may be quite expensive to compute. Returns GA_INVALID_OFFSET if there aren't enough elements in the group.

const GA_AIFCompare* GA_ElementGroup::getAIFCompare ( ) const
inlineoverridevirtual

Return the attribute's comparison interface or NULL.

Reimplemented from GA_Attribute.

Definition at line 453 of file GA_ATIGroupBool.h.

const GA_AIFCopyData* GA_ElementGroup::getAIFCopyData ( ) const
inlineoverridevirtual

Return the attribute's copy interface or NULL.

Reimplemented from GA_Attribute.

Definition at line 445 of file GA_ATIGroupBool.h.

const GA_AIFInterp* GA_ElementGroup::getAIFInterp ( ) const
inlineoverridevirtual

Return the attribute's interpolation interface or NULL.

Reimplemented from GA_Attribute.

Definition at line 449 of file GA_ATIGroupBool.h.

const GA_AIFMerge* GA_ElementGroup::getAIFMerge ( ) const
inlineoverridevirtual

Return the attribute's merge interface or NULL.

Reimplemented from GA_Attribute.

Definition at line 451 of file GA_ATIGroupBool.h.

const GA_AIFTuple* GA_ElementGroup::getAIFTuple ( ) const
inlineoverridevirtual

Return the attribute's tuple interface or NULL.

Reimplemented from GA_Attribute.

Definition at line 447 of file GA_ATIGroupBool.h.

GA_Offset GA_ElementGroup::getArraySize ( ) const
inline

Get the array size of the attribute. This is primarily here for checking detached groups, when the detail may have more elements added since the group was created.

Definition at line 547 of file GA_ATIGroupBool.h.

GA_ElementGroup* GA_ElementGroup::getAttribute ( )
inline

Definition at line 461 of file GA_ATIGroupBool.h.

const GA_ElementGroup* GA_ElementGroup::getAttribute ( ) const
inline

Definition at line 462 of file GA_ATIGroupBool.h.

void GA_ElementGroup::getConstantSpan ( GA_Offset  start,
GA_Offset  end,
GA_Size size,
bool &  value 
) const
inline

Query the length of repeated bit values starting from 'start' until 'end' or a change in bit values.

Definition at line 403 of file GA_ATIGroupBool.h.

SYS_FORCE_INLINE GA_DataBitArray& GA_ElementGroup::getData ( )
inline

Returns the writable raw bit array. WARNING: Only use this if this is an unordered group, and invalidateGroupEntries() has been called, so that writing doesn't cause problems.

Definition at line 555 of file GA_ATIGroupBool.h.

SYS_FORCE_INLINE const GA_DataBitArray& GA_ElementGroup::getData ( ) const
inline

Returns the read-only raw bit array.

Definition at line 563 of file GA_ATIGroupBool.h.

const GA_Detail& GA_ElementGroup::getDetail ( ) const
inlinefinaloverridevirtual

Implements GA_Group.

Definition at line 64 of file GA_ATIGroupBool.h.

GA_Detail& GA_ElementGroup::getDetail ( )
inline

Definition at line 68 of file GA_ATIGroupBool.h.

GA_ElementGroup* GA_ElementGroup::getGroup ( )
inline

Definition at line 459 of file GA_ATIGroupBool.h.

const GA_ElementGroup* GA_ElementGroup::getGroup ( ) const
inline

Definition at line 460 of file GA_ATIGroupBool.h.

GA_Size GA_ElementGroup::getGroupEntries ( ) const
inline

Definition at line 307 of file GA_ATIGroupBool.h.

int64 GA_ElementGroup::getMemoryUsage ( bool  inclusive) const
overridevirtual

Report the memory usage

NOTE: If you're implementing this in a direct subclass of GA_Attribute, call getBaseMemoryUsage() to get the amount of memory in the base class. If in a more distant descendant class, call Base::getMemoryUsage(false) to count the memory in Base and above, excluding sizeof(Base).

Implements GA_Attribute.

GA_ElementGroupOrder* GA_ElementGroup::getOrdered ( )
inline

Definition at line 457 of file GA_ATIGroupBool.h.

const GA_ElementGroupOrder* GA_ElementGroup::getOrdered ( ) const
inline

Definition at line 458 of file GA_ATIGroupBool.h.

SYS_FORCE_INLINE bool GA_ElementGroup::getPageValue ( GA_PageNum  pagenum) const
inline

If pagenum is a constant page, this returns the constant value of the page. Otherwise, this function shouldn't be called.

Definition at line 577 of file GA_ATIGroupBool.h.

WriteConcurrence GA_ElementGroup::getSupportedWriteConcurrence ( ) const
inlineoverridevirtual

Data is paged, so concurrent writes to separate pages supported, unless the group is ordered. Rather, that would be the case if the updates to myGroupEntries were thread-safe.

Implements GA_Attribute.

Definition at line 442 of file GA_ATIGroupBool.h.

static SYS_FORCE_INLINE const GA_AttributeType& GA_ElementGroup::getType ( )
inlinestatic

Definition at line 79 of file GA_ATIGroupBool.h.

static SYS_FORCE_INLINE const UT_StringHolder& GA_ElementGroup::getTypeName ( )
inlinestatic

Definition at line 76 of file GA_ATIGroupBool.h.

void GA_ElementGroup::hardenAllPages ( GA_Offset  start_offset = GA_Offset(0),
GA_Offset  end_offset = GA_INVALID_OFFSET 
)
overridevirtual

Harden data pages.

Implements GA_Attribute.

void GA_ElementGroup::invalidateGroupEntries ( )
inline

Definition at line 412 of file GA_ATIGroupBool.h.

SYS_FORCE_INLINE bool GA_ElementGroup::isEmpty ( ) const
inline

Query whether the group is empty of primary elements.

Examples:
SOP/SOP_Flatten.C, and SOP/SOP_PointWave.C.

Definition at line 287 of file GA_ATIGroupBool.h.

bool GA_ElementGroup::isEmptyMix ( ) const
inline

Query whether the group is empty of elements, primary or mixed.

Definition at line 292 of file GA_ATIGroupBool.h.

SYS_FORCE_INLINE bool GA_ElementGroup::isGroupEmpty ( ) const
inline

Definition at line 281 of file GA_ATIGroupBool.h.

bool GA_ElementGroup::isMixed ( ) const
inlinefinaloverridevirtual

Query if the group contains any mixed elements.

Implements GA_Group.

Definition at line 317 of file GA_ATIGroupBool.h.

bool GA_ElementGroup::isOrdered ( ) const
inlinefinaloverridevirtual

Returns true if the group is currently ordered.

Implements GA_Group.

Definition at line 140 of file GA_ATIGroupBool.h.

SYS_FORCE_INLINE bool GA_ElementGroup::isPageConstant ( GA_PageNum  pagenum) const
inline

Returns true iff the specified page is constant-compressed, where a single value is stored to represent GA_PAGE_SIZE values in the page, (or possibly fewer if only one page).

Definition at line 571 of file GA_ATIGroupBool.h.

static SYS_FORCE_INLINE bool GA_ElementGroup::isType ( const GA_Attribute attrib)
inlinestatic

Definition at line 82 of file GA_ATIGroupBool.h.

static SYS_FORCE_INLINE bool GA_ElementGroup::isType ( const GA_Group group)
inlinestatic

Definition at line 101 of file GA_ATIGroupBool.h.

bool GA_ElementGroup::jsonLoad ( UT_JSONParser p,
const GA_LoadMap map 
)

Load from a JSON stream.

bool GA_ElementGroup::jsonLoadData ( UT_JSONParser p,
const GA_LoadMap map 
)
overridevirtual

Load from a JSON stream.

Implements GA_Group.

bool GA_ElementGroup::jsonSave ( UT_JSONWriter w,
const GA_SaveMap map 
) const

Save data to a JSON file. We do not provide an GA_AIFJSON interface since the data is saved by the group (not the attribute). This method is called directly by GA_ElementGroup instead.

JSON Schema: GA_ATIGroupBool

{
"name" : "GA_ATIGroupBool",
"description" :
"Selection information for a GA_ElementGroup. There should
only be one of 'ordered' or 'unordered' depending on
whether the group is ordered or unordered.",
"type" : "orderedmap",
"properties": {
"defaults": {
"type" : { "$ref" : "GA_Defaults" }
"description" : "Default values",
},
"ordered": {
"type" : {"$ref":"GA_ElementGroupOrder"},
"optional" : true,
"description" : "Ordered group selection.",
},
"unordered": {
"type" : {"$ref":"GA_DataBitArray"},
"optional" : true,
"description" : "Unordered selection of group selection.",
},
},
}
See Also
JSON_FileFormat
bool GA_ElementGroup::jsonSaveData ( UT_JSONWriter w,
const GA_SaveMap map 
) const
overridevirtual

Save data to a JSON stream.

JSON Schema: GA_ElementGroup

Private data for an element group

{
"name" : "GA_ElementGroup-Data",
"description" : "Data for an element group.",
"type" : "orderedmap",
"properties": {
"selection": {
"type" : {"$ref" : "GA_ATIGroupBool" },
"description" : "Group memebership data",
"optional" : true
}
},
}
See Also
JSON_FileFormat, GA_GroupTable

Implements GA_Group.

bool GA_ElementGroup::loadGroupByIndexOrderH9 ( const UT_BitArray array)
bool GA_ElementGroup::loadGroupH9 ( UT_IStream is)
void GA_ElementGroup::makeConstant ( bool  value)
void GA_ElementGroup::makeOrdered ( )
void GA_ElementGroup::makeUnordered ( )
inline

Definition at line 167 of file GA_ATIGroupBool.h.

bool GA_ElementGroup::needDestruction ( ) const
overridevirtual

Methods which can be overridden from GA_Attribute.

Element destruction event. When an element is destroyed, the attribute may be notified of this event.

Reimplemented from GA_Attribute.

GA_ElementGroup& GA_ElementGroup::operator&= ( const GA_ElementGroup g)

These operators only support g having the same owner as this.

Deprecated:
Use point/vertex/primitive group operator.
GA_ElementGroup& GA_ElementGroup::operator-= ( const GA_ElementGroup g)

These operators only support g having the same owner as this.

Deprecated:
Use point/vertex/primitive group operator.
GA_ElementGroup& GA_ElementGroup::operator= ( const GA_ElementGroup g)
inline

These operators only support g having the same owner as this.

Deprecated:
Use point/vertex/primitive group operator.

Definition at line 252 of file GA_ATIGroupBool.h.

GA_ElementGroup& GA_ElementGroup::operator^= ( const GA_ElementGroup g)

These operators only support g having the same owner as this.

Deprecated:
Use point/vertex/primitive group operator.
GA_ElementGroup& GA_ElementGroup::operator|= ( const GA_ElementGroup g)

operator|= supports point, vertex, and primitive groups, regardless of this group type.

Deprecated:
Use combine or point/vertex/primitive group operator.
void GA_ElementGroup::orEqual ( const GA_ATIGroupBool src)

These methods only work on unordered groups.

void GA_ElementGroup::reconstructElementBlock ( GA_Offset  offset,
GA_Offset  nelements 
)
overridevirtual

When the array size is grown, attributes should initialize the value appropriately. When elements are reused, however, reconstructElementBlock is called. This happens if an element is deleted and then a new element is allocated (using the existing slot)

Implements GA_Attribute.

static void GA_ElementGroup::registerType ( )
static
SYS_FORCE_INLINE void GA_ElementGroup::removeIndex ( GA_Index  ai)
inline

Access elements of the group by ordered index rather than offset. Internally, this method just find the data offset and calls appropriate method.

Definition at line 345 of file GA_ATIGroupBool.h.

SYS_FORCE_INLINE void GA_ElementGroup::removeOffset ( GA_Offset  ai)
inline

Access elements by their offset in the index map NOTE: When using addOffset, toggleOffset, removeOffset in parallel, you must call invalidateGroupEntries() afterward, else entries() may return an incorrect value. NOTE: These cannot be used in parallel on an ordered group.

Definition at line 371 of file GA_ATIGroupBool.h.

SYS_FORCE_INLINE void GA_ElementGroup::removeRange ( const GA_Range it)
inline

Access elements by a GA_Range These have the advantage of being able to operate a page at a time when applicable. NOTE: These cannot be used in parallel on an ordered group.

Definition at line 394 of file GA_ATIGroupBool.h.

void GA_ElementGroup::replace ( const GA_Attribute src)
finaloverridevirtual

This replaces the entirety of this attribute's content and non- storage metadata (except the name) with that of the src attribute. This copies the src group order if present and destroys any if not. matchesStorage(src) should already return true. This is primarily for use by GA_AttributeSet::replace(). NOTE: The internal content sizes may not match exactly if the attribute type may overallocate, but the sizes should be such that any real data will fit in the destination, so be careful and deal with the myTailInitialize flag appropriately if any extra elements aren't equal to the default.

Implements GA_Attribute.

bool GA_ElementGroup::saveGroupH9 ( std::ostream &  os,
bool  binary 
) const
bool GA_ElementGroup::setArraySize ( GA_Offset  new_size)
overridevirtual

Grow or shrink the array size.

Implements GA_Attribute.

SYS_FORCE_INLINE void GA_ElementGroup::setElement ( GA_Offset  ai,
bool  v 
)
inline

NOTE: When using setElement(GA_Offset,bool) in parallel, you must call invalidateGroupEntries() afterward, else getGroupEntries() may return an incorrect value. NOTE: This cannot be used in parallel on an ordered group.

Definition at line 192 of file GA_ATIGroupBool.h.

SYS_FORCE_INLINE void GA_ElementGroup::setElement ( const GA_Range it,
bool  v 
)
inline

NOTE: This cannot be used in parallel on an ordered group.

Definition at line 204 of file GA_ATIGroupBool.h.

void GA_ElementGroup::setEntries ( )
inline

Add all elements to the group, only writing to real elements' offsets.

Definition at line 426 of file GA_ATIGroupBool.h.

SYS_FORCE_INLINE void GA_ElementGroup::setOffset ( GA_Offset  ai,
bool  v 
)
inline

Definition at line 323 of file GA_ATIGroupBool.h.

bool GA_ElementGroup::setOrdered ( bool  ordered)
inline

When ordered is set to true, convert this group to an ordered group, otherwise convert to an unordered group. If the group contains mixed entries, a conversion to unordered will fail, and the function return false. Conversion to ordered group will always succeed.

Definition at line 149 of file GA_ATIGroupBool.h.

SYS_FORCE_INLINE void GA_ElementGroup::setPageConstant ( GA_PageNum  pagenum,
const bool  value 
)
inline

Sets all elements of the specified page to the given value.

Definition at line 582 of file GA_ATIGroupBool.h.

bool GA_ElementGroup::stat ( UT_WorkBuffer info,
uint  level 
) const
overridevirtual

Compute detailed information.

Reimplemented from GA_Group.

void GA_ElementGroup::subEqual ( const GA_ATIGroupBool src)

These methods only work on unordered groups.

void GA_ElementGroup::toggleAll ( GA_Size  numelements)

These methods only work on unordered groups.

void GA_ElementGroup::toggleElement ( GA_Offset  ai)

NOTE: When using toggleElement(GA_Offset) in parallel, you must call invalidateGroupEntries() afterward, else getGroupEntries() may return an incorrect value. NOTE: This cannot be used in parallel on an ordered group.

void GA_ElementGroup::toggleElement ( const GA_Range it)

NOTE: This cannot be used in parallel on an ordered group.

void GA_ElementGroup::toggleEntries ( )
inline

Toggle membership of all elements.

Definition at line 431 of file GA_ATIGroupBool.h.

SYS_FORCE_INLINE void GA_ElementGroup::toggleIndex ( GA_Index  ai)
inline

Access elements of the group by ordered index rather than offset. Internally, this method just find the data offset and calls appropriate method.

Definition at line 339 of file GA_ATIGroupBool.h.

SYS_FORCE_INLINE void GA_ElementGroup::toggleOffset ( GA_Offset  ai)
inline

Access elements by their offset in the index map NOTE: When using addOffset, toggleOffset, removeOffset in parallel, you must call invalidateGroupEntries() afterward, else entries() may return an incorrect value. NOTE: These cannot be used in parallel on an ordered group.

Definition at line 365 of file GA_ATIGroupBool.h.

SYS_FORCE_INLINE void GA_ElementGroup::toggleRange ( const GA_Range it)
inline

Access elements by a GA_Range These have the advantage of being able to operate a page at a time when applicable. NOTE: These cannot be used in parallel on an ordered group.

Definition at line 389 of file GA_ATIGroupBool.h.

void GA_ElementGroup::tryCompressAllPages ( GA_Offset  start_offset = GA_Offset(0),
GA_Offset  end_offset = GA_INVALID_OFFSET 
)
overridevirtual

Try to compress data pages.

Implements GA_Attribute.

void GA_ElementGroup::xorEqual ( const GA_ATIGroupBool src)

These methods only work on unordered groups.

Friends And Related Function Documentation

friend class GOP_GroupParse
friend

Definition at line 776 of file GA_ATIGroupBool.h.

friend class GU_ElementGroup
friend

Definition at line 775 of file GA_ATIGroupBool.h.

friend class GU_Group
friend

Definition at line 774 of file GA_ATIGroupBool.h.


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