14 #ifndef __GA_GroupTable_h__
15 #define __GA_GroupTable_h__
40 template <
typename T>
class UT_Array;
51 virtual int64 getMemoryUsage(
bool inclusive)
const;
62 bool isEmpty()
const {
return myEntryMap.empty(); }
64 exint getPersistentCount()
const;
116 const char *
type)
const;
123 bool jsonShouldSave(
const GA_SaveMap &map)
const;
136 template <
typename GROUP_TYPE>
150 {
return myIt->second->getName(); }
153 {
return static_cast<GROUP_TYPE *
>(myIt->second); }
159 {
return (myIt == cmp.myIt); }
162 {
return !(*
this ==
cmp); }
165 {
return myIt == myEnd; }
185 {
return begin<GA_Group>(); }
194 {
return compareGroupName(**a, **b); }
214 {
return iterator<T>(myEntryMap.begin(),myEntryMap.end()); }
216 {
return iterator<T>(myEntryMap.end(),myEntryMap.end()); }
220 template <
typename GROUP_TYPE>
225 for (iter = begin<GROUP_TYPE>(); !iter.
atEnd(); ++iter)
244 virtual GA_Group *virtualCreateGroup(
247 bool internal)
const = 0;
248 virtual GA_Group *virtualCreateDetachedGroup(
257 if (myEntryMap.size() + n > myEntryMap.bucket_count())
258 myEntryMap.reserve(myEntryMap.size() +
n);
SYS_FORCE_INLINE iterator()
SYS_FORCE_INLINE const UT_StringHolder & name()
GA_GroupTable::iterator< GA_Group > beginTraverse() const
SYS_FORCE_INLINE iterator(const MapType::const_iterator &it, const MapType::const_iterator &end)
GLuint const GLchar * name
Used to pass options and map offset values during saving.
SYS_FORCE_INLINE GROUP_TYPE * group()
void getListT(UT_Array< GROUP_TYPE * > &list) const
GLboolean GLboolean GLboolean GLboolean a
UT_ArrayStringMap< GA_Group * > MapType
ordered_iterator obegin() const
JSON reader class which handles parsing of JSON or bJSON files.
const GA_Detail & getDetail() const
Class which writes ASCII or binary JSON streams.
static int compareAlpha(GA_Group *const *a, GA_Group *const *b)
UT_ArrayStringMap< GA_AttributeProxy * > MapType
exint GA_Size
Defines the bit width for index and offset types in GA.
A string map of attributes to ease backward compatibility In the GB/GEO/GU library code would often p...
void reserveNewSymbolTableSpace(exint n)
GA_GroupTable::iterator< GA_Group > endTraverse() const
Parent::const_iterator const_iterator
SYS_FORCE_INLINE GROUP_TYPE * operator*()
GLint GLint GLint GLint GLint GLint GLint GLbitfield GLenum filter
ordered_iterator oend() const
GLubyte GLubyte GLubyte GLubyte w
SYS_FORCE_INLINE const char * c_str() const
const UT_StringHolder & getName() const
GLuint GLuint GLsizei GLenum type
iterator< T > end() const
const MapType & getMap() const
Used only by GA_AttributeDict.
SYS_FORCE_INLINE iterator & operator++()
SYS_FORCE_INLINE bool operator==(const iterator &cmp) const
GLdouble GLdouble GLdouble b
static int compareNumberedString(const char *s1, const char *s2, bool case_sensitive=true, bool allow_negatives=false)
Class to return information about a GA_Detail.
static int compareGroupName(const GA_Group &a, const GA_Group &b)
GA_GroupType
An ordinal enum for the different types of groups in GA.
FMT_CONSTEXPR bool find(Ptr first, Ptr last, T value, Ptr &out)
Container class for all geometry.
SYS_FORCE_INLINE bool operator!=(const iterator &cmp) const
iterator< T > begin() const
UT_OrderedIterator< GA_Group *, GA_GroupTable::iterator< GA_Group > > ordered_iterator
SYS_FORCE_INLINE bool atEnd() const