TopoDS_Iterator
Introduction
TopoDS_Iterator is a class in the Open CASCADE Technology (OCCT) library for iterating over the sub-shapes of a given shape in a topological hierarchy. This is a part of the TopoDS package. The shape that needs to be explored can be a solid, a face, an edge, a wire etc.
Overall, TopoDS_Iterator is a useful tool for working with complex 3D models, as it allows quick and easily access to the sub-shapes of a given shape.
Example
Here is an example of how to use the TopoDS_Iterator class.
#include <TopoDS_Shape.hxx>
#include <TopoDS_Iterator.hxx>
TopoDS_Shape shape; // shape to be explored
TopoDS_Iterator it(shape); // initialize TopoDS_Iterator
for (; it.More(); it.Next()) // loop through values
{
const TopoDS_Shape& shape = it.Value(); // get the current value
}
If you want to get the specific type of sub-shape, you need to check the shape type.
#include <TopoDS_Shape.hxx>
#include <TopoDS_Iterator.hxx>
TopoDS_Shape shape; // shape to be explored
TopoDS_Iterator it(shape); // initialize TopoDS_Iterator
for (; it.More(); it.Next()) // loop through values
{
const TopoDS_Shape& subShape = it.Value(); // get the current value
if (subShape .ShapeType() == TopAbs_FACE) // check the sub-shape type
{
const TopoDS_Face& face = TopoDS::Face(subShape); // get the face
}
}
Tags:
Tutorial