14 #ifndef __GA_GroupTable_h__
15 #define __GA_GroupTable_h__
41 template <
typename T>
class UT_Array;
52 virtual int64 getMemoryUsage(
bool inclusive)
const;
63 bool isEmpty()
const {
return myEntryMap.empty(); }
65 exint getPersistentCount()
const;
84 {
return createDetachedGroup().release(); }
95 virtual bool match(
const GA_Group *group)
const = 0;
123 const char *
type)
const;
130 bool jsonShouldSave(
const GA_SaveMap &map)
const;
143 template <
typename GROUP_TYPE>
157 {
return myIt->second->getName(); }
160 {
return static_cast<GROUP_TYPE *
>(myIt->second); }
166 {
return (myIt == cmp.myIt); }
169 {
return !(*
this ==
cmp); }
172 {
return myIt == myEnd; }
192 {
return begin<GA_Group>(); }
201 {
return compareGroupName(**a, **b); }
221 {
return iterator<T>(myEntryMap.begin(),myEntryMap.end()); }
223 {
return iterator<T>(myEntryMap.end(),myEntryMap.end()); }
227 template <
typename GROUP_TYPE>
232 for (iter = begin<GROUP_TYPE>(); !iter.
atEnd(); ++iter)
234 GROUP_TYPE *group = iter.
group();
251 virtual GA_Group *virtualCreateGroup(
254 bool internal)
const = 0;
255 virtual GA_Group *virtualCreateDetachedGroup(
264 if (myEntryMap.size() + n > myEntryMap.bucket_count())
265 myEntryMap.reserve(myEntryMap.size() +
n);
281 void bumpVersionParms(
const GA_Group *group);
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)
Used to pass options and map offset values during saving.
SYS_FORCE_INLINE GROUP_TYPE * group()
void getListT(UT_Array< GROUP_TYPE * > &list) const
UT_ArrayStringMap< GA_Group * > MapType
GLboolean GLboolean GLboolean GLboolean a
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.
IMATH_HOSTDEVICE constexpr int cmp(T a, T b) IMATH_NOEXCEPT
A string map of attributes to ease backward compatibility In the GB/GEO/GU library code would often p...
#define SYS_DEPRECATED_REPLACE(__V__, __R__)
void reserveNewSymbolTableSpace(exint n)
GA_GroupTable::iterator< GA_Group > endTraverse() const
Parent::const_iterator const_iterator
SYS_FORCE_INLINE GROUP_TYPE * operator*()
ordered_iterator oend() const
SYS_FORCE_INLINE const char * c_str() const
GLuint const GLchar * name
const UT_StringHolder & getName() const
GLboolean GLboolean GLboolean b
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
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)
UT_UniquePtr< GA_Group > GA_GroupUPtr
GA_GroupType
An ordinal enum for the different types of groups in GA.
Container class for all geometry.
GLubyte GLubyte GLubyte GLubyte w
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
FMT_CONSTEXPR auto find(Ptr first, Ptr last, T value, Ptr &out) -> bool
GLint GLint GLint GLint GLint GLint GLint GLbitfield GLenum filter