Open CASCADE Technology
7.2.0

An Explorer is a Tool to visit a Topological Data Structure form the TopoDS package. More...
#include <TopExp_Explorer.hxx>
Public Member Functions  
TopExp_Explorer ()  
Creates an empty explorer, becomes usefull after Init. More...  
TopExp_Explorer (const TopoDS_Shape &S, const TopAbs_ShapeEnum ToFind, const TopAbs_ShapeEnum ToAvoid=TopAbs_SHAPE)  
Creates an Explorer on the Shape <S>. More...  
void  Init (const TopoDS_Shape &S, const TopAbs_ShapeEnum ToFind, const TopAbs_ShapeEnum ToAvoid=TopAbs_SHAPE) 
Resets this explorer on the shape S. It is initialized to search the shape S, for shapes of type ToFind, that are not part of a shape ToAvoid. If the shape ToAvoid is equal to TopAbs_SHAPE, or if it is the same as, or less complex than, the shape ToFind it has no effect on the search. More...  
Standard_Boolean  More () const 
Returns True if there are more shapes in the exploration. More...  
void  Next () 
Moves to the next Shape in the exploration. Exceptions Standard_NoMoreObject if there are no more shapes to explore. More...  
const TopoDS_Shape &  Current () const 
Returns the current shape in the exploration. Exceptions Standard_NoSuchObject if this explorer has no more shapes to explore. More...  
void  ReInit () 
Reinitialize the exploration with the original arguments. More...  
Standard_Integer  Depth () const 
Returns the current depth of the exploration. 0 is the shape to explore itself. More...  
void  Clear () 
Clears the content of the explorer. It will return False on More(). More...  
void  Destroy () 
~TopExp_Explorer ()  
An Explorer is a Tool to visit a Topological Data Structure form the TopoDS package.
An Explorer is built with :
The Explorer visits all the structure to find shapes of the requested type which are not contained in the type to avoid.
Example to find all the Faces in the Shape S :
TopExp_Explorer Ex; for (Ex.Init(S,TopAbs_FACE); Ex.More(); Ex.Next()) { ProcessFace(Ex.Current()); }
// an other way TopExp_Explorer Ex(S,TopAbs_FACE); while (Ex.More()) { ProcessFace(Ex.Current()); Ex.Next(); }
To find all the vertices which are not in an edge :
for (Ex.Init(S,TopAbs_VERTEX,TopAbs_EDGE); ...)
To find all the faces in a SHELL, then all the faces not in a SHELL :
TopExp_Explorer Ex1, Ex2;
for (Ex1.Init(S,TopAbs_SHELL),...) { // visit all shells for (Ex2.Init(Ex1.Current(),TopAbs_FACE),...) { // visit all the faces of the current shell } }
for (Ex1.Init(S,TopAbs_FACE,TopAbs_SHELL),...) { // visit all faces not in a shell }
If the type to avoid is the same or is less complex than the type to find it has no effect.
For example searching edges not in a vertex does not make a difference.
TopExp_Explorer::TopExp_Explorer  (  ) 
Creates an empty explorer, becomes usefull after Init.
TopExp_Explorer::TopExp_Explorer  (  const TopoDS_Shape &  S, 
const TopAbs_ShapeEnum  ToFind,  
const TopAbs_ShapeEnum  ToAvoid = TopAbs_SHAPE 

) 
Creates an Explorer on the Shape <S>.
<ToFind> is the type of shapes to search. TopAbs_VERTEX, TopAbs_EDGE, ...
<ToAvoid> is the type of shape to skip in the exploration. If <ToAvoid> is equal or less complex than <ToFind> or if <ToAVoid> is SHAPE it has no effect on the exploration.

inline 
void TopExp_Explorer::Clear  (  ) 
Clears the content of the explorer. It will return False on More().
const TopoDS_Shape& TopExp_Explorer::Current  (  )  const 
Returns the current shape in the exploration. Exceptions Standard_NoSuchObject if this explorer has no more shapes to explore.
Standard_Integer TopExp_Explorer::Depth  (  )  const 
Returns the current depth of the exploration. 0 is the shape to explore itself.
void TopExp_Explorer::Destroy  (  ) 
void TopExp_Explorer::Init  (  const TopoDS_Shape &  S, 
const TopAbs_ShapeEnum  ToFind,  
const TopAbs_ShapeEnum  ToAvoid = TopAbs_SHAPE 

) 
Resets this explorer on the shape S. It is initialized to search the shape S, for shapes of type ToFind, that are not part of a shape ToAvoid. If the shape ToAvoid is equal to TopAbs_SHAPE, or if it is the same as, or less complex than, the shape ToFind it has no effect on the search.
Standard_Boolean TopExp_Explorer::More  (  )  const 
Returns True if there are more shapes in the exploration.
void TopExp_Explorer::Next  (  ) 
Moves to the next Shape in the exploration. Exceptions Standard_NoMoreObject if there are no more shapes to explore.
void TopExp_Explorer::ReInit  (  ) 
Reinitialize the exploration with the original arguments.