C++ 将边添加到Openmesh网格
从OpenMesh开始,到目前为止,我已经能够添加顶点,并制作面我现在在理解如何向网格添加边时遇到问题。 我知道openMesh使用的半边数据结构,但我真的不明白应该如何添加边 代码: 定义:C++ 将边添加到Openmesh网格,c++,openmesh,C++,Openmesh,从OpenMesh开始,到目前为止,我已经能够添加顶点,并制作面我现在在理解如何向网格添加边时遇到问题。 我知道openMesh使用的半边数据结构,但我真的不明白应该如何添加边 代码: 定义: Variables in header: vector<OpenMesh::PolyMesh_ArrayKernelT<OpenMeshExt::MyOwnTraits>::VertexHandle> vHandlers; OpenMesh::PolyMes
Variables in header:
vector<OpenMesh::PolyMesh_ArrayKernelT<OpenMeshExt::MyOwnTraits>::VertexHandle> vHandlers;
OpenMesh::PolyMesh_ArrayKernelT<OpenMeshExt::MyOwnTraits> myMesh;
标题中的变量:
向量机;
OpenMesh::PolyMesh_ArrayKernelT 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)
}
typedef OpenMesh::PolyMesh_ArrayKernelT OpnMesh;
typedef optnmesh::VertexHandle VertexHandle;
空心网格::addVertexFromPoint(点和位置){
浮动x=静态_转换(position.x());
浮动y=静态_转换(position.y());
vertexHandle vhand=myMesh。添加_顶点(OpnMesh::点(x,y,.0f));
vHandlers.推回(vhand);
}
void Mesh::makeFace(){
如果(vHandlers.size()您不必/无法显式创建或删除边。每当您修改网格时(例如,通过使用add_face
创建面),网格将创建(或删除)必要的(半)边。此外,它将调整顶点、边和面之间的链接,以反映网格的拓扑结构