如何迭代 TopTools_IndexedMapOfShape

在 OpenCASCADE 中,你可以使用以下命令获取例如 TopoDS_Shape 的边列表

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

你如何迭代 edges

最简单的方法是像这样使用索引:

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

如果你想在上面的示例中从 TopoDS_Shape 获取 TopoDS_Edge,在循环内使用 TopoDS::Edge(edge)

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

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