1

そのため、プロジェクトに OpenMesh ライブラリを使用していて、 EdgeHandle e をメソッドに渡しています。このエッジで結合されている 2 つの面を確認できますか? オンラインで調べてみましたが、openMesh のドキュメントは非常にまばらで、EdgeHandle のドキュメントはさらにまばらです。

4

2 に答える 2

2

ええ、OpenMesh の「ドキュメント」はかなり厄介です。ただし、face_handleタンタンが言及したものを検索すると、このページが隠されていることがわかりました。これにより、多数の便利な機能が提供されます

そこにあるものを使用すると、次のように機能します。

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));

必要な 2 つの face_handle を取得します。

于 2014-01-06T07:38:29.477 に答える