1

因此,我将 OpenMesh 库用于项目,并将 EdgeHandle e 传递给方法。是否有可能看到这条边连接了哪两个面?我尝试在网上查找,但 openMesh 的文档非常稀少,而 EdgeHandle 的内容甚至更稀少。

4

2 回答 2

2

是的,OpenMesh 的“文档”非常令人恼火。但是,通过搜索face_handletintin提到的,我发现这个页面隐藏在其中,它提供了大量有用的功能: http: //openmesh.org/Documentation/OpenMesh-2.4-Documentation/classOpenMesh_1_1Concepts_1_1KernelT.html

使用那里找到的东西,以下对我有用:

FaceHandle a = mesh.face_handle(mesh.halfedge_handle(e,0));
FaceHandle b = mesh.face_handle(mesh.halfedge_handle(e,1));

(从技术上讲,我将右侧包含在一个函数调用中,所以我没有完全按照编写的方式尝试过。至少右侧应该返回某种形式的 FaceHandle。)

于 2014-03-04T23:18:54.867 回答
0

处理这件事并不难,

HalfedgeHandle halfedge_handle(VertexHandle _vh) const {
    return vertex(_vh).halfedge_handle_;
}

使用此函数,您将能够使用 edge_handle 生成半边句柄。你可以

mymesh.face_handle(_hh);
mesh.face_handle(mesh.opposite_halfedge_handle(_hh));

得到你需要的两个 face_handle。

于 2014-01-06T07:38:29.477 回答