我开始使用OpenMesh来浏览可能有整体的网格,并且想知道实际检索与每条边相关联的顶点的好方法是什么。
对于半边,有网格的方法opposite_he_opposite_vh
和opposite_vh
,但是如果相反的半边不存在则会触发错误(我们当前在边界的一半 - 边缘)。
鉴于我经常遇到这些问题,迭代所有边缘的更好方法是什么(我实际上并不特别关心半边缘,我为每条边获取数据,但方向无关紧要我需要的是两个顶点)?
答案 0 :(得分:2)
我认为你可以使用:
MyMesh::to_vertex_handle(MyMesh::HalfedgeHandle)
MyMesh::from_vertex_handle(MyMesh::HalfedgeHandle)
请确认您可以找到以下方法: - )
答案 1 :(得分:1)
你想要的可能是这个例子:
for ( mesh_t::EdgeIter eit = _m.edges_begin(); eit != edgesEnd; ++eit) {
const MeshType::Point to = _m.point(_m.to_vertex_handle(_m.halfedge_handle(eit,0)));
const MeshType::Point from = _m.point(_m.from_vertex_handle(_m.halfedge_handle(eit,0)));
}
答案 2 :(得分:0)
其他一个答案对我不起作用b / c迭代器需要被解除引用。 这就是我使用OpenMesh 4.1实现的方法 最佳做法可能有所改变; OpenMesh 6.2现已推出,但我尚未切换。
{{1}}