TopTools_IndexedMapOfShape iterieren

English Deutsch

In OpenCASCADE kannst du z.B. eine Liste von Kanten für ein TopoDS_Shape erhalten mit

iterate_indexedmap.cpp
TopTools_IndexedMapOfShape edges;
TopExp::MapShapes (shape, TopAbs_EDGE, edges);

Wie kannst du edges iterieren?

Der einfachste Weg ist die Verwendung von Indizierung wie folgt:

iterate_indexedmap.cpp
for (size_t i = 1; i <= edges.Extent(); i++) {
    TopoDS_Shape& edge = edges(i);
    /* ... */
}

Wenn du das TopoDS_Edge aus dem TopoDS_Shape im obigen Beispiel erhalten möchtest, verwende TopoDS::Edge(edge) innerhalb der Schleife.

edge_usage.cpp
TopoDS_Edge anEdge = TopoDS::Edge(edge);

Check out similar posts by category: C/C++, OpenCASCADE