Alle Faces in TopoDS_Solid mit OpenCASCADE iterieren
English
Deutsch
Du kannst die OCCUtils-Bibliothek verwenden, um alle TopoDS_Face-Instanzen in einem TopoDS_Solid zu iterieren
iterate_faces_occutils.cpp
#include <occutils/ShapeComponents.hxx>
using namespace OCCUtils;
TopoDS_Shape myShape = /* ... */;
auto faces = ShapeComponents::AllFacesWithin(myShape);
// Alle Solids iterieren
for(const TopoDS_Face& face : faces) {
/* ... */
}Alternativ kannst du diesen Quellcode ohne OCCUtils verwenden:
iterate_faces_manual.cpp
#include <TopTools_IndexedMapOfShape.hxx>
#include <TopoDS.hxx>
#include <TopoDS_Shape.hxx>
#include <TopExp.hxx>
TopoDS_Shape myShape = /* ... */;
TopTools_IndexedMapOfShape faces;
TopExp::MapShapes (myShape, TopAbs_FACE, faces);
for (int i = 1; i <= faces.Extent (); i++) {
TopoDS_Face face = TopoDS::Face(faces(i));
/* ... */
}Wenn du die Wahl hast, empfehle ich OCCUtils zu verwenden, da es deinen Code viel lesbarer macht als die Verwendung der rohen OpenCASCADE-API.
Check out similar posts by category:
C/C++, OpenCASCADE
If this post helped you, please consider buying me a coffee or donating via PayPal to support research & publishing of new posts on TechOverflow