Traverser objects are typically built using a default AcBrTraverser* constructor and then initializing with one of the set* functions. Note that the list owner must be set before the list position can be set independently, to provide context.
All classes derived from AcBrTraverser support copy constructors, assignment operators, isEqualTo(), and isNull(), along with general traversal functions.
The initializer functions are semantically bound to the AcBr types appropriate to the specific traverser (that is, the two types contained in the derived traverser class name, such as AcBrBrep and AcBrEdge for AcBrBrepEdgeTraverser).
All initializer functions reset the criteria for next() and done(). They fall into the general algorithmic categories as follows:
- setListOwnerAndCurrentPosition from another traverser, using its list owner as current position and its current position as list owner (that is, swap the list owner and current position). This algorithm is only valid for mapping between associated traversers such as AcBrLoopEdgeTraverser and AcBrEdgeLoopTraverser.
- setListOwnerAndCurrentPosition from an AcBr object, using it as the current position and its owner as the list owner. This algorithm is only valid in cases where the list owner is unambiguous, such as the shell owner of a face on setting AcBrShellFaceTraverser.
- setListOwner from another traverser, using its current position as list owner and defaulting the current position to the first position in the new adjacency list. This algorithm is only valid for setting downward hierarchical traversers using another downward hierarchical traverser from the next level up (such as using an AcBrShellFaceTraverser to initialize an AcBrFaceLoopTraverser), or for setting upward hierarchical traversers using another upward hierarchical traverser from the next level down (such as using an AcBrVertexEdgeTraverser to initialize an AcBrEdgeLoopTraverser).
- setListOwner from an AcBr object, using it as the list owner and defaulting the current position to the first position in the new adjacency list. This algorithm is valid for all traverser types.
- setCurrentPosition from an AcBr object, using it as the current position in an already established list. This algorithm is valid for most traverser types but requires that the list owner has already been set previously.
The traverser classes include the following:
- AcBrTraverser
- AcBrBrepComplexTraverser
- AcBrBrepShellTraverser
- AcBrBrepFaceTraverser
- AcBrBrepEdgeTraverser
- AcBrBrepVertexTraverser
- AcBrComplexShellTraverser
- AcBrShellFaceTraverser
- AcBrFaceLoopTraverser
- AcBrLoopEdgeTraverser
- AcBrLoopVertexTraverser
- AcBrVertexLoopTraverser
- AcBrVertexEdgeTraverser
- AcBrEdgeLoopTraverser
- AcBrMesh2dElement2dTraverser
- AcBrElement2dNodeTraverser