c++ - 如何在父形状中获取数字索引/位置(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_EDGE, 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, TopAbs_FACE, face_map);
for (v = 1; face_number <= face_map.Extent(); face_number++) {
if( face.IsSame(face_map(face_number)) ) {
// Found face index.
}
}
是否有更好或替代的方法来实现这一目标?
解决方案
推荐阅读
- python-3.x - Python遍历列表列表
- windows - Chrome 84 密码套件 IIS 8
- webp - 使用 HTML 元素向访问者提供 WebP 图像
- c - 多个应用程序头文件在 C 中包含错误
- scala - 为什么我不能将案例类的构造函数用作在 map() 中使用的函数
- python - 如何解压列表中的列表并附加到python中的字符串?
- react-native - 我可以在 React Native 应用程序中使用 Instagram 登录和 AWS Amplify cognito 吗?
- java - 使用 Freemarker 继承模板
- ios - 带有段控制和自定义标题视图的导航栏
- amazon-web-services - 通过使用 pyspark 将数据帧的较小的多个镶木地板文件识别为单个分区数据帧的 S3 压缩