2016-07-06 37 views
3

剛剛開始使用OpenMesh,並且迄今爲止我已添加了頂點並創建了面。 我現在有一個理解我應該如何給網格添加邊的問題。將邊添加到Openmesh網格

我知道openMesh使用半邊數據結構的,但我實在無法理解如何,我要補充的邊緣..

代碼:

定義:

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

在CPP:

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的面,網格將創建(或刪除)必要的(半)邊。此外,它將調整頂點,邊和麪之間的鏈接以反映網格的拓撲結構。