OCC Main Page | ModelingData | Toolkits | Packages | Class Hierarchy | Data Structures | File List | Data Fields | Globals

ModelingData
TKBRep
TopExp


TopExp_Explorer Class Reference

An Explorer is a Tool to visit a Topological Data
Structure form the TopoDS package.

An Explorer is built with :

* The Shape to explore.

* The type of Shapes to find : e.g VERTEX, EDGE.
This type cannot be SHAPE.

* The type of Shapes to avoid. e.g SHELL, EDGE.
By default this type is SHAPE which means no
restriction on the exploration.


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.

.

#include <TopExp_Explorer.hxx>


Public Member Functions

void * operator new (size_t, void *anAddress)
void * operator new (size_t size)
void operator delete (void *anAddress)
Standard_EXPORT TopExp_Explorer ()
 Creates an empty explorer, becomes usefull after Init.
.
Standard_EXPORT 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.

.
Standard_EXPORT 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.
.
Standard_Boolean More () const
 Returns True if there are more shapes in the
exploration.
.
Standard_EXPORT void Next ()
 Moves to the next Shape in the exploration.
Exceptions
Standard_NoMoreObject if there are no more shapes to explore.
.
Standard_EXPORT const TopoDS_ShapeCurrent () const
 Returns the current shape in the exploration.
Exceptions
Standard_NoSuchObject if this explorer has no more shapes to explore.
.
Standard_EXPORT void ReInit ()
 Reinitialize the exploration with the original
arguments.
.
Standard_Integer Depth () const
 Returns the current depth of the exploration. 0 is
the shape to explore itself.
.
void Clear ()
 Clears the content of the explorer. It will return
False on More().
.
Standard_EXPORT void Destroy ()
 ~TopExp_Explorer ()

Private Attributes

TopExp_Stack myStack
Standard_Integer myTop
Standard_Integer mySizeOfStack
TopoDS_Shape myShape
Standard_Boolean hasMore
TopAbs_ShapeEnum toFind
TopAbs_ShapeEnum toAvoid


Constructor & Destructor Documentation

Standard_EXPORT TopExp_Explorer::TopExp_Explorer  ) 
 

Standard_EXPORT TopExp_Explorer::TopExp_Explorer const TopoDS_Shape S,
const TopAbs_ShapeEnum  ToFind,
const TopAbs_ShapeEnum  ToAvoid = TopAbs_SHAPE
 

TopExp_Explorer::~TopExp_Explorer  )  [inline]
 


Member Function Documentation

void TopExp_Explorer::Clear  )  [inline]
 

Standard_EXPORT const TopoDS_Shape& TopExp_Explorer::Current  )  const
 

Standard_Integer TopExp_Explorer::Depth  )  const [inline]
 

Standard_EXPORT void TopExp_Explorer::Destroy  ) 
 

Standard_EXPORT void TopExp_Explorer::Init const TopoDS_Shape S,
const TopAbs_ShapeEnum  ToFind,
const TopAbs_ShapeEnum  ToAvoid = TopAbs_SHAPE
 

Standard_Boolean TopExp_Explorer::More  )  const [inline]
 

Standard_EXPORT void TopExp_Explorer::Next  ) 
 

void TopExp_Explorer::operator delete void *  anAddress  )  [inline]
 

void* TopExp_Explorer::operator new size_t  size  )  [inline]
 

void* TopExp_Explorer::operator new size_t  ,
void *  anAddress
[inline]
 

Standard_EXPORT void TopExp_Explorer::ReInit  ) 
 


Field Documentation

Standard_Boolean TopExp_Explorer::hasMore [private]
 

TopoDS_Shape TopExp_Explorer::myShape [private]
 

Standard_Integer TopExp_Explorer::mySizeOfStack [private]
 

TopExp_Stack TopExp_Explorer::myStack [private]
 

Standard_Integer TopExp_Explorer::myTop [private]
 

TopAbs_ShapeEnum TopExp_Explorer::toAvoid [private]
 

TopAbs_ShapeEnum TopExp_Explorer::toFind [private]
 


The documentation for this class was generated from the following files:
Generated on Mon Aug 25 13:23:08 2008 for OpenCASCADE by  doxygen 1.4.1