11 #ifndef __GA_GBPrimitiveList__ 
   12 #define __GA_GBPrimitiveList__ 
   33     ~GA_GBPrimitiveList();
 
   39     GA_Size     entries()
 const { 
return myIndexMap.indexSize(); }
 
   45     void                 clearAndDestroy();
 
   54                             { 
return myIndexMap.indexSize() == 0 ? 0:rawEntry(0); }
 
   59                                 return n ? rawEntry(n-1) : 0;
 
   63                             { 
return myIndexMap.indexSize() == 0 ? 0:rawEntry(0); }
 
   68                                 return n ? rawEntry(n-1) : 0;
 
  142             GroupIterationCache(
const GroupIterationCache &);
 
  143             GroupIterationCache &
operator=(
const GroupIterationCache &);
 
  236 template <
typename T>
 
  264                                 { 
return cast(
rawHead(group)); }
 
  267                                 { 
return cast(
rawHead(group)); }
 
  270                                 { 
return cast(
rawTail(group)); }
 
  273                                 { 
return cast(
rawTail(group)); }
 
  278                                 { 
return cast(
rawHead(group, cache)); }
 
  282                                 { 
return cast(
rawHead(group, cache)); }
 
  286                                 { 
return cast(
rawTail(group, cache)); }
 
  290                                 { 
return cast(
rawTail(group, cache)); }
 
  303                             const { 
return cast(
rawNext(i, g)); }
 
  306                                 { 
return cast(
rawNext(i, g)); }
 
  311                                 { 
return cast(
rawNext(i, g, cache)); }
 
  315                                 { 
return cast(
rawNext(i, g, cache)); }
 
  325                             const { 
return cast(
rawPrev(i, g)); }
 
  328                                 { 
return cast(
rawPrev(i, g)); }
 
  333                                 { 
return cast(
rawPrev(i, g, cache)); }
 
  337                                 { 
return cast(
rawPrev(i, g, cache)); }
 
  354                                     { 
return reinterpret_cast<const T *
>(e); }
 
  356                                     { 
return reinterpret_cast<T *
>(e); }
 
  363 template <
typename T, 
typename SEC_T>
 
  376                         const 
T *&elem, const SEC_T *&sec)
 const 
  377                     { 
return this->
rawHeadMix(group, rcast(elem), sec_rcast(sec)); }
 
  380                     { 
return this->
rawHeadMix(group, rcast(elem), sec_rcast(sec)); }
 
  383                         const 
T *&elem, const SEC_T *&sec)
 const 
  384                     { 
return this->
rawTailMix(group, rcast(elem), sec_rcast(sec)); }
 
  387                     { 
return this->
rawTailMix(group, rcast(elem), sec_rcast(sec)); }
 
  390                         const 
T *&elem, const SEC_T *&sec,
 
  392                     { 
return this->
rawHeadMix(group, rcast(elem), sec_rcast(sec),c); }
 
  396                     { 
return this->
rawHeadMix(group, rcast(elem), sec_rcast(sec),c); }
 
  399                         const 
T *&elem, const SEC_T *&sec,
 
  401                     { 
return this->
rawTailMix(group, rcast(elem), sec_rcast(sec),c); }
 
  405                     { 
return this->
rawTailMix(group, rcast(elem), sec_rcast(sec),c); }
 
  410                         const 
T *&elem, const SEC_T *&sec,
 
  411                         const 
T *&newelem, const SEC_T *&newsec)
 const 
  412                     { 
return this->
rawNextMix(group, rcast(elem), sec_rcast(sec),
 
  413                                               rcast(newelem), sec_rcast(newsec)); }
 
  416                         T *&elem, SEC_T *&sec, 
T *&newelem, SEC_T *&newsec)
 
  417                     { 
return this->
rawNextMix(group, rcast(elem), sec_rcast(sec),
 
  418                                               rcast(newelem), sec_rcast(newsec)); }
 
  421                         const 
T *&elem, const SEC_T *&sec,
 
  422                         const 
T *&newelem, const SEC_T *&newsec)
 const 
  423                     { 
return this->
rawPrevMix(group, rcast(elem), sec_rcast(sec),
 
  424                                               rcast(newelem), sec_rcast(newsec)); }
 
  427                         T *&elem, SEC_T *&sec, 
T *&newelem, SEC_T *&newsec)
 
  428                     { 
return this->
rawPrevMix(group, rcast(elem), sec_rcast(sec),
 
  429                                               rcast(newelem), sec_rcast(newsec)); }
 
  432                         const 
T *&elem, const SEC_T *&sec,
 
  433                         const 
T *&newelem, const SEC_T *&newsec,
 
  435                     { 
return this->
rawNextMix(group, rcast(elem), sec_rcast(sec),
 
  436                                               rcast(newelem), sec_rcast(newsec), c); }
 
  439                         T *&elem, SEC_T *&sec, 
T *&newelem, SEC_T *&newsec,
 
  441                     { 
return this->
rawNextMix(group, rcast(elem), sec_rcast(sec),
 
  442                                               rcast(newelem), sec_rcast(newsec), c); }
 
  445                         const 
T *&elem, const SEC_T *&sec,
 
  446                         const 
T *&newelem, const SEC_T *&newsec,
 
  448                     { 
return this->
rawPrevMix(group, rcast(elem), sec_rcast(sec),
 
  449                                               rcast(newelem), sec_rcast(newsec), c); }
 
  452                         T *&elem, SEC_T *&sec, 
T *&newelem, SEC_T *&newsec,
 
  454                     { 
return this->
rawPrevMix(group, rcast(elem), sec_rcast(sec),
 
  455                                               rcast(newelem), sec_rcast(newsec), c); }
 
int rawTailMix(const GA_ElementGroup &group, const GA_Primitive *&elem, const GA_Primitive *&sec) const 
A class to manage an ordered array which has fixed offset handles. 
typedef int(APIENTRYP RE_PFNGLXSWAPINTERVALSGIPROC)(int)
const GA_Primitive * rawNext(const GA_Primitive *i) const 
const GA_Primitive * rawEntry(GA_Size n) const 
*get result *(waiting if necessary)*A common idiom is to fire a bunch of sub tasks at the and then *wait for them to all complete We provide a helper class
const T * entry(GA_Size n) const 
#define SYS_DEPRECATED_PUSH_DISABLE()
#define SYS_DEPRECATED_POP_DISABLE()
T must be a sub-class of GA_Primitive. 
int rawNextMix(const GA_ElementGroup &group, const GA_Primitive *&elem, const GA_Primitive *&sec, const GA_Primitive *&newelem, const GA_Primitive *&newsec) const 
Information necessary to lookup a secondary primitive. 
exint GA_Size
Defines the bit width for index and offset types in GA. 
const GA_Primitive * rawHead() const 
const GA_Primitive * rawPrev(const GA_Primitive *i) const 
int rawHeadMix(const GA_ElementGroup &group, const GA_Primitive *&elem, const GA_Primitive *&sec) const 
GA_Size GA_ElementGroupOrderIndex
Class used to avoid O(n^2) traversal of ordered groups. 
const T * prev(const GA_Primitive *i) const 
const T * next(const GA_Primitive *i) const 
int tailMix(const GA_ElementGroup &group, const T *&elem, const SEC_T *&sec) const 
int rawPrevMix(const GA_ElementGroup &group, const GA_Primitive *&elem, const GA_Primitive *&sec, const GA_Primitive *&newelem, const GA_Primitive *&newsec) const 
#define SYS_DEPRECATED_HDK(__V__)
int nextMix(const GA_ElementGroup &group, const T *&elem, const SEC_T *&sec, const T *&newelem, const SEC_T *&newsec) const 
LeafData & operator=(const LeafData &)=delete
int prevMix(const GA_ElementGroup &group, const T *&elem, const SEC_T *&sec, const T *&newelem, const SEC_T *&newsec) const 
int headMix(const GA_ElementGroup &group, const T *&elem, const SEC_T *&sec) const 
const GA_Primitive * rawTail() const 
bool operator==(const Mat3< T0 > &m0, const Mat3< T1 > &m1)
Equality operator, does exact floating point comparisons.