2016-07-06 8 views
3

OpenMeshを使い始めるだけで、私はこれまでに頂点を追加して顔を作ることができました。 私は、どのようにしてメッシュにエッジを追加するべきかを理解することに問題があります。Openmeshメッシュにエッジを追加する

私はopenMeshが使用するハーフエッジデータ構造を認識していますが、私は本当に私がエッジを追加する方法を理解することはできません。..

コード:

定義:

CPPで
Variables in header: 
    vector<OpenMesh::PolyMesh_ArrayKernelT<OpenMeshExt::MyOwnTraits>::VertexHandle> vHandlers; 
    OpenMesh::PolyMesh_ArrayKernelT<OpenMeshExt::MyOwnTraits> myMesh; 

typedef OpenMesh::PolyMesh_ArrayKernelT<OpenMeshExt::CustomTraits> OpnMesh; 
typedef OpnMesh::VertexHandle vertexHandle; 

void Mesh::addVertexFromPoint(Point& position){ 
    float x = static_cast <float> (position.x()); 
    float y = static_cast <float> (position.y()); 
    vertexHandle vhand= myMesh.add_vertex(OpnMesh::Point(x,y,.0f)); 
    vHandlers.push_back(vhand); 
} 

void Mesh::makeFace(){ 
    if(vHandlers.size()<=2){ 
     return; 
    } 
    myMesh.add_face(vHandlers); 
//Add edges between eg vertex 0 and 1 in vHandlers (vector with VertexHandlers) 
} 

ドキュメントを検索しましたが、答えが見つかりませんでした。

答えて

2

エッジを明示的に作成または削除する必要はありません。あなたがメッシュを変更するときはいつでも。 add_faceの顔を作成すると、メッシュは必要な(ハーフ)エッジを作成(または削除)します。また、メッシュのトポロジを反映するために、頂点、エッジ、フェース間のリンクを調整します。

関連する問題