小编jsb*_*jsb的帖子

addface::OpenMesh 中的复杂边缘错误

我一直在关注 OpenMesh 教程的第一步 -通过一些修改构建一个立方体,我使用的是 TriMesh 而不是 PolyMesh 并且正在构建金字塔而不是立方体。

不知何故,PolymeshT::add_face:complex edge我的第二张脸和第三张脸都出现了错误。这些面应该在点 (0,0,0)、(0,1,0) 和 (0,0,1) 以及点 (0,0,0)、(0,0,1) 和(1,0,0)。

当每个面被构造为 (0,0,0) 到 (0,1,0) 和 (0,0,0) 到 (0,0,1) 时,两条边已经存在,但我应该能够在其中创建面一些边缘已经存在,不是吗?

到目前为止我尝试过的解决方案

  • 改变坐标
  • 使用 PolyMesh 代替 TriMesh

我无法发现我正在做的与教程不同的任何其他事情。

#include <OpenMesh/Core/IO/MeshIO.hh>
#include <OpenMesh/Core/Mesh/TriMesh_ArrayKernelT.hh>
typedef OpenMesh::TriMesh_ArrayKernelT<> MyTriMesh;

// Make a pyramid
int main()
{
    MyTriMesh tin;

    // generate vertices
    MyTriMesh::VertexHandle vhandle[4];
    vhandle[0] = tin.add_vertex(MyTriMesh::Point(0, 0, 0));
    vhandle[1] = tin.add_vertex(MyTriMesh::Point(0, 1, 0));
    vhandle[2] = tin.add_vertex(MyTriMesh::Point(1, 0, 0));
    vhandle[3] = tin.add_vertex(MyTriMesh::Point(0, 0, 1));

    // …
Run Code Online (Sandbox Code Playgroud)

c++ openmesh

5
推荐指数
1
解决办法
3090
查看次数

标签 统计

c++ ×1

openmesh ×1