14 #ifndef __GA_BreakpointGroup_h__
15 #define __GA_BreakpointGroup_h__
69 bool removeEntry(
Entry *it);
77 {
return myBreakpointList.length() - myNumSecondary; }
81 {
return myBreakpointList.length() <= myNumSecondary; }
87 virtual bool isEmptyMix()
const {
return myBreakpointList.isEmpty(); }
90 bool isMixed()
const override {
return myNumSecondary > 0; }
94 void clear()
override;
95 void addAll()
override;
134 public std::iterator<std::input_iterator_tag, T>
148 template<
typename ET>
151 myGroup = src.myGroup;
156 {
return myCurr == cmp.myCurr; }
159 {
return myCurr != cmp.myCurr; }
165 bool atEnd()
const {
return !myCurr; }
170 myNext =
static_cast<Entry *
>(myNext->next());
174 myNext =
static_cast<Entry *
>(
175 myGroup->myBreakpointList.head());
185 myCurr(static_cast<
Entry *>(group->myBreakpointList.
head()))
187 myNext = myCurr ?
static_cast<Entry *
>(myCurr->next()) : 0;
190 Entry *myCurr, *myNext;
204 bool addEntry(Entry *it);
208 unsigned myNumSecondary;
virtual int64 getMemoryUsage(bool inclusive) const =0
GLboolean GLboolean GLboolean b
bool isOrdered() const override
Used to pass options and map offset values during saving.
GA_Size entriesMix() const
UT_StringArray JOINTS head
JSON reader class which handles parsing of JSON or bJSON files.
reference operator*() const
base_iterator< GA_Breakpoint > iterator
Class which writes ASCII or binary JSON streams.
GLuint const GLchar * name
base_iterator< const GA_Breakpoint > const_iterator
std::enable_if< UT_EnableBitMask< T >::enable, T & >::type operator&=(T &lhs, T rhs)
base_iterator()
Default constructor.
exint GA_Size
Defines the bit width for index and offset types in GA.
virtual void countMemory(UT_MemoryCounter &counter, bool inclusive) const =0
IMATH_HOSTDEVICE constexpr int cmp(T a, T b) IMATH_NOEXCEPT
GLubyte GLubyte GLubyte GLubyte w
auto base_iterator(std::back_insert_iterator< Container > &it, checked_ptr< typename Container::value_type >) -> std::back_insert_iterator< Container >
virtual bool isEmptyMix() const
Query whether the group does not contain any breakpoints.
OIIO_FORCEINLINE const vint4 & operator+=(vint4 &a, const vint4 &b)
const_iterator end() const
const_iterator begin() const
const UT_LinkList & list() const
GA_Size entries() const override
Query the number of breakpoints from primary primitives in the group.
Entry(const GA_Breakpoint &b)
base_iterator & operator++()
++iterator
base_iterator(const base_iterator< ET > &src)
std::enable_if< UT_EnableBitMask< T >::enable, T & >::type operator^=(T &lhs, T rhs)
OIIO_FORCEINLINE const vint4 & operator-=(vint4 &a, const vint4 &b)
bool operator!=(const base_iterator &cmp) const
Container class for all geometry.
reference getBreakpoint() const
ImageBuf OIIO_API add(Image_or_Const A, Image_or_Const B, ROI roi={}, int nthreads=0)
bool isMixed() const override
Query if we contain any breakpoints from secondary primitives.
bool OIIO_UTIL_API contains(string_view a, string_view b)
Does 'a' contain the string 'b' within it?
bool operator==(const base_iterator &cmp) const
const GA_Detail & getDetail() const override
Return the owning detail.
std::enable_if< UT_EnableBitMask< T >::enable, T & >::type operator|=(T &lhs, T rhs)
FMT_CONSTEXPR auto find(Ptr first, Ptr last, T value, Ptr &out) -> bool