2016-07-06 4 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, сетка создаст (или удалит) необходимые (полу) края. Кроме того, он будет адаптировать связи между вершинами, ребрами и гранями, чтобы отразить топологию вашей сетки.