HDK
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
GA_PageIterator.h File Reference
#include "GA_API.h"
#include "GA_Iterator.h"
#include "GA_Range.h"
#include "GA_SplittableRange.h"
#include "GA_Types.h"
#include <UT/UT_ThreadedAlgorithm.h>
#include <stddef.h>
+ Include dependency graph for GA_PageIterator.h:
+ This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

class  GA_PageIterator
 

Macros

#define GA_FOR_INFORANGE(info, full_range, IT_NAME)
 
#define GA_FOR_INFORANGE_BOSS(info, full_range, IT_NAME, boss)
 
#define GA_FOR_INFO_ALLPOINTS(gdp, info, IT_NAME)
 Iterate over all points for the given info. More...
 
#define GA_FOR_INFO_ALLPOINTS_BOSS(gdp, info, IT_NAME, boss)
 Iterate over all points for the given info with a UT_Interrupt. More...
 
#define GA_FOR_INFO_GROUP_POINTS_BOSS(gdp, pointgrp, info, IT_NAME, boss)
 Iterate over all points for the given info with a UT_Interrupt. More...
 

Macro Definition Documentation

#define GA_FOR_INFO_ALLPOINTS (   gdp,
  info,
  IT_NAME 
)
Value:
GA_SplittableRange lcl_prange(gdp->getPointRange()); \
for (GA_PageIterator pit=lcl_prange.beginPages(info); \
!pit.atEnd(); ++pit) \
for (GA_Iterator IT_NAME = pit.begin(); !IT_NAME.atEnd(); ++IT_NAME)
Iteration over a range of elements.
Definition: GA_Iterator.h:28
bool atEnd() const
Definition: GA_Iterator.h:100
bool atEnd() const

Iterate over all points for the given info.

Definition at line 136 of file GA_PageIterator.h.

#define GA_FOR_INFO_ALLPOINTS_BOSS (   gdp,
  info,
  IT_NAME,
  boss 
)
Value:
GA_SplittableRange lcl_prange(gdp->getPointRange()); \
for (GA_PageIterator pit=lcl_prange.beginPages(info); \
!pit.atEnd() && !boss->opInterrupt(); ++pit) \
for (GA_Iterator IT_NAME = pit.begin(); !IT_NAME.atEnd(); ++IT_NAME)
Iteration over a range of elements.
Definition: GA_Iterator.h:28
bool atEnd() const
Definition: GA_Iterator.h:100
bool atEnd() const

Iterate over all points for the given info with a UT_Interrupt.

Definition at line 143 of file GA_PageIterator.h.

#define GA_FOR_INFO_GROUP_POINTS_BOSS (   gdp,
  pointgrp,
  info,
  IT_NAME,
  boss 
)
Value:
GA_SplittableRange lcl_prange(gdp->getPointRange(pointgrp)); \
for (GA_PageIterator pit=lcl_prange.beginPages(info); \
!pit.atEnd() && !boss->opInterrupt(); ++pit) \
for (GA_Iterator IT_NAME = pit.begin(); !IT_NAME.atEnd(); ++IT_NAME)
Iteration over a range of elements.
Definition: GA_Iterator.h:28
bool atEnd() const
Definition: GA_Iterator.h:100
bool atEnd() const

Iterate over all points for the given info with a UT_Interrupt.

Definition at line 151 of file GA_PageIterator.h.

#define GA_FOR_INFORANGE (   info,
  full_range,
  IT_NAME 
)
Value:
GA_SplittableRange lcl_prange(full_range); \
for (GA_PageIterator pit=lcl_prange.beginPages(info); \
!pit.atEnd(); ++pit) \
for (GA_Iterator IT_NAME = pit.begin(); !IT_NAME.atEnd(); ++IT_NAME)
Iteration over a range of elements.
Definition: GA_Iterator.h:28
bool atEnd() const
Definition: GA_Iterator.h:100
bool atEnd() const

Define macros roughly equivalent to FOR_INFOTASKS (in UT_ThreadedAlgorithm). This will break up the full range into a load balanced iteration over pages. For example: GA_FOR_INFOTASKS(info, gdp->getPointRange(), it) { doSomething(it.getOrder()); // Use point number doSomething(it.getOffset()); // Use point offset }

Definition at line 121 of file GA_PageIterator.h.

#define GA_FOR_INFORANGE_BOSS (   info,
  full_range,
  IT_NAME,
  boss 
)
Value:
GA_SplittableRange lcl_prange(full_range); \
for (GA_PageIterator pit=lcl_prange.beginPages(info); \
!pit.atEnd() && !boss->opInterrupt(); ++pit) \
for (GA_Iterator IT_NAME = pit.begin(); !IT_NAME.atEnd(); ++IT_NAME)
Iteration over a range of elements.
Definition: GA_Iterator.h:28
bool atEnd() const
Definition: GA_Iterator.h:100
bool atEnd() const

Like FOR_INFOTASKS_BOSS, iterate with an optional opInterrupt for every block completed.

Definition at line 129 of file GA_PageIterator.h.