14 #ifndef __GA_ElementGroupTable_h__
15 #define __GA_ElementGroupTable_h__
40 template <
typename T>
class UT_Array;
61 {
return begin<GA_ElementGroup>(); }
80 bool saveGroupsH9(std::ostream &os,
int binary)
const;
84 void addElementToAllGroups(
GA_Offset dest)
const;
85 void toggleElementInAllGroups(
GA_Offset dest)
const;
86 void removeElementFromAllGroups(
GA_Offset dest)
const;
90 void unionElementForAllGroups(
GA_Offset dest,
93 void intersectElementForAllGroups(
GA_Offset dest,
107 void removeElementFromGroupOrders(
GA_Offset element)
const;
108 void removeElementsFromGroupOrders(
const GA_Range &
range)
const;
109 void removeElementsFromGroupOrders(
122 void removeMixElementFromGroups(
GA_Offset element,
124 void removeMixElementsFromGroups(
128 void removeMixElementsFromGroups(
140 void invalidateGroupEntries();
162 const char *
name,
const char *
type,
bool ordered);
173 template <GA_AttributeOwner OWNER,
bool DUMMY>
176 template <
bool DUMMY>
183 template <
bool DUMMY>
190 template <
bool DUMMY>
200 template <GA_AttributeOwner OWNER>
213 { getListT<const GROUP_TYPE>(list); }
215 { getListT<GROUP_TYPE>(list); }
226 {
return begin<GROUP_TYPE>(); }
250 bool internal)
const override
252 return new GROUP_TYPE(detail, name,
internal,
false);
ordered_iterator oend() const
void getList(UT_Array< const GROUP_TYPE * > &list) const
GA_GroupTable::iterator< GA_Group > beginTraverse() const
GA_ElementGroupTableT< GA_ATTRIB_PRIMITIVE > GA_PrimitiveGroupTable
GA_GroupTable::iterator< GROUP_TYPE > endTraverse() const
static GROUP_TYPE * castGroup(GA_ElementGroup *group)
const GLuint GLenum const void * binary
The merge map keeps track of information when merging details.
GLboolean GLboolean GLboolean GLboolean a
JSON reader class which handles parsing of JSON or bJSON files.
void baseMergeTable(const GA_ElementGroupTable &src, GA_MergeMap &map, GA_AttributeOwner owner)
Abstract base class for a range membership query object.
SYS_FORCE_INLINE TO_T UTverify_cast(FROM_T from)
GA_ElementGroupTableT< GA_ATTRIB_VERTEX > GA_VertexGroupTable
Information necessary to lookup a secondary primitive.
ordered_iterator oend() const
GA_AttributeOwner getOwner() const override
virtual GA_Group * jsonCreateGroup(UT_JSONParser &p, const char *type, const char *name, bool internal, GA_AttributeOwner owner)=0
exint GA_Size
Defines the bit width for index and offset types in GA.
static int compareAlpha(GA_ElementGroup *const *a, GA_ElementGroup *const *b)
GA_GroupTable::iterator< GA_ElementGroup > iterator
A range of elements in an index-map.
SYS_FORCE_INLINE GA_ElementGroup * find(const UT_StringRef &name) const
ordered_iterator obegin() const
ElementType< OWNER, true >::Class GROUP_TYPE
GA_GroupTable::iterator< GA_ElementGroup > beginTraverse() const
GA_Group * virtualCreateDetachedGroup(const GA_Detail &detail) const override
GLuint const GLchar * name
OWNER must be one of GA_ATTRIB_POINT, GA_ATTRIB_PRIMITIVE, GA_ATTRIB_VERTEX.
GLboolean GLboolean GLboolean b
GA_Group * find(const UT_StringRef &name) const
void mergeTable(const GA_ElementGroupTableT< OWNER > &src, GA_MergeMap &map)
ordered_iterator obegin() const
GA_ElementGroupTableT(GA_Detail &detail)
GA_GroupTable::iterator< GA_ElementGroup > endTraverse() const
static const GROUP_TYPE * castGroup(const GA_ElementGroup *group)
static int compareGroupName(const GA_Group &a, const GA_Group &b)
UT_OrderedIterator< GROUP_TYPE *, GA_GroupTable::iterator< GROUP_TYPE > > ordered_iterator
static int compareAlpha(GROUP_TYPE *const *a, GROUP_TYPE *const *b)
GA_GroupTable::iterator< GROUP_TYPE > beginTraverse() const
GA_GroupTable::iterator< GROUP_TYPE > iterator
UT_OrderedIterator< GA_ElementGroup *, GA_GroupTable::iterator< GA_ElementGroup > > ordered_iterator
Container class for all geometry.
GA_ElementGroupTableT< GA_ATTRIB_POINT > GA_PointGroupTable
UT_OrderedIterator< GA_Group *, GA_GroupTable::iterator< GA_Group > > ordered_iterator
void getList(UT_Array< GROUP_TYPE * > &list) const
GA_Group * virtualCreateGroup(GA_Detail &detail, const UT_StringHolder &name, bool internal) const override
~GA_ElementGroupTableT() override