OpenMesh 中是否有一个现成的函数可以返回连接两个顶点的边缘句柄?对于半边有find_halfedge(vertex1, vertex2)
功能,但我找不到相应的find_edge(vertex1, vertex2)
功能。目前我正在使用自己的,但我想知道是否有比这更好的方法。本质上,我正在迭代两个顶点的周围边缘并检查它们的半边指向的位置:
MyMesh::EdgeHandle find_edge(MyMesh & mesh, MyMesh::VertexHandle & v1, MyMesh::VertexHandle & v2 ){
for (MyMesh::VertexEdgeIter edge = mesh.ve_iter(v1); edge.is_valid(); ++edge){
if( (mesh.from_vertex_handle((*edge).h0())==v1) && (mesh.to_vertex_handle((*edge).h0())==v2)){
return *edge;
}
if( (mesh.from_vertex_handle((*edge).h0())==v2) && (mesh.to_vertex_handle((*edge).h0())==v1)){
return *edge;
}
}
std::cout<<"No common edge between v1 and v2"<<std::endl;
MyMesh::EdgeHandle edge_null;
return edge_null;
}