如何解决如何获取数字索引/位置以父形状面对OpenCascade
我正在使用OpenCascade来获取三角剖分中的边顶点。为此,我使用了一个边到面映射的帮助,其中边作为匹配面的关键。但是,我还想获得父级形状中的脸部的数字索引(例如,如果我使用TopoDS::Face(face_map(int face_number))
,则为脸部编号)。
TopTools_IndexedMapOfShape edges;
TopExp::MapShapes (parent_shape,TopAbs_EDGE,edges);
TopTools_IndexedDataMapOfShapeListOfShape edge2FaceMap;
TopExp::MapShapesAndAncestors(shape,TopAbs_FACE,edge2FaceMap);
for (int iedge = 1; iedge <= edges.Extent(); iedge++) {
const TopoDS_Edge& edge = TopoDS::Edge(edges(iedge));
const TopoDS_Face& face = TopoDS::Face(edge2FaceMap.FindFromKey(edge).First());
// Get vertices...
}
我可以遍历所有面孔并匹配映射的面孔,但这似乎效率很低。
TopTools_IndexedMapOfShape face_map;
TopExp::MapShapes(shape,face_map);
for (v = 1; face_number <= face_map.Extent(); face_number++) {
if( face.IsSame(face_map(face_number)) ) {
// Found face index.
}
}
是否有更好或替代的方法来实现这一目标?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。