Добавить ребра в сетку Openmesh

Просто начинаю с OpenMesh, и я до сих пор был в состоянии добавлять вершины и делать грани. Теперь у меня проблема с пониманием того, как я должен добавить ребро в сетку.

Мне известна структура данных Half-edge, которую использует 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)
}

Искал документацию, но не могу сказать, что нашел ответ ..

3

Решение

Вам не нужно / вы не можете явно создавать или удалять ребра. Всякий раз, когда вы изменяете сетку, например создавая лицо с add_faceсетка создаст (или удалит) необходимые (половинные) ребра. Кроме того, он адаптирует связи между вершинами, ребрами и гранями для отражения топологии вашей сетки.

2

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]