问题标签 [openmesh]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
306 浏览

python - Openmesh:使用 Python 比使用 C++ 更快地更新面法线?

我使用 OpenMesh 创建了以下简单的 C++ 脚本:

此外,我还使用 OpenMesh 绑定开发了以下简单的 Python 脚本:

两个脚本都会更新加载网格的面法线 1000 次。我预计 C++ 脚本会比 Python 脚本快得多,但实际上恰恰相反。我发现 C++ 脚本花费了大约 8 秒,而 Python 脚本只花费了大约 0.3 秒。

这怎么可能?Python 绑定是否在做一些不同于“包装”C++ update_face_normals方法的事情?谢谢。

0 投票
1 回答
124 浏览

linux - g++-4.3在linux下qt5.8找不到

我已经安装了 g++ 最新版本,但是 Qt5.8 找不到 g++-4.3 就像 ":-1: error: g++-4.3: Command not found" 你能帮帮我吗?本项目是openmesh示例的第一个教程

0 投票
1 回答
912 浏览

c++ - 在openmesh中计算三角形的面积

这是“多边形网格过程”示例的片段:

为什么最后乘以 0.3333f?

0 投票
0 回答
154 浏览

python - OpenMesh Plane3d

我是 OpenMesh 的新手,有一个非常基本的问题。我正在尝试在 python 中使用 OpenMesh 创建一个平面。我尝试了以下方法,但它不起作用:

所以首先我收到一条错误消息说

om 没有名为 Plane3d 的模块

我也试过om.VDPM.Plane3dand om.Geometry.Plane3d,同样的结果。如何调用创建平面的函数?

其次,当我阅读文档(http://www.openmesh.org/Daily-Builds/Doc/a01919.html)时,Plane3d 接受一个向量和一个点。如何创建一个点?OpenMesh 中的点是否与向量相同?

0 投票
0 回答
51 浏览

c++ - OpenMesh 只有拓扑,没有数据

是否可以使用 OpenMesh 构建没有数据的 DCEL?在我的特定用例中,顶点数据归第 3 方封闭源应用程序所有,我想使用 OpenMesh 来遍历该数据。该文档讨论了重新定义Point类型以及添加新数据但不删除Point数据。

0 投票
2 回答
838 浏览

c++ - Qt _USE_MATH_DEFINES

我需要使用 Qt IDE 在我的 PC 上使用 OpenMesh,简单 *.pro 文件的片段如下所示:

但是,我仍然收到错误消息:“ C1189:#error:”您必须在编译器设置中定义_USE_MATH_DEFINES!“ 谁能帮我?

0 投票
1 回答
359 浏览

openmesh - 如何使用 OpenMesh 运行程序

我已经阅读了大部分 OpenMesh 的文档,并且对如何使用 OpenMesh 运行一个简单的程序感到迷茫。我按照教程制作基本立方体并构建项目:http ://www.openmesh.org/media/Documentations/OpenMesh-6.2-Documentation/a00068.html但他们没有提到如何运行程序。该教程说将制作立方体的文件放在特定文件夹中:http ://www.openmesh.org/media/Documentations/OpenMesh-6.2-Documentation/a00066.html我这样做了。当我用 cmake 和 make 构建它时,它清楚地编译了代码。在那之后我迷路了。

0 投票
1 回答
454 浏览

c++ - 如何正确使用选项和标志来更改 OpenMesh 中的 read_mesh 和 write_mesh 函数?

我能够在 OpenMesh 中读写非常基本的 .off 文件,但是当我使用程序 Geomview 来可视化网格时,这并不能让我很好地看到连接三角形网格顶点的边。我想出了如何更改 .off 文件以使用以下格式为我的三角形着色:http ://www.geomview.org/docs/html/OFF.html ,Geomview 接受我编写这些文件的方式。但是我似乎无法更改 OpenMesh 的 read_mesh 函数,以便它可以正确读取所有三角形面。

我尝试使用https://www.openmesh.org/media/Documentations/OpenMesh-Doc-Latest/a00212.html中的 OpenMesh::IO::Options 类以及我从Options.hh 源代码。这是我尝试做的事情:

我能够编译该程序而没有任何错误,并且它可以运行。但是,read_mesh 函数无法正确完成对 .off 文件的读取。

这是我的 .off 文件的更简单版本:

然后我有两种写三角形面的方法:

方法1)

方法2)

对于方法 1,read_mesh 只读取第一个三角形面。它达到了三角形颜色的浮点值,我假设不知道如何处理它们,所以它只是停止读取值。因为当它将网格写入单独的文件时,它只列出了一个面,并且更新了该特定三面的三个顶点的位置。

对于方法 2,我得到一堆“PolyMeshT::add_face: complex vertex”错误。

我当然没有正确调整 read_mesh 函数,我想知道是否有人对我有任何指导。

0 投票
1 回答
1169 浏览

python - Openmesh:如何修改网格面?(以及如何随机访问组件句柄?)

我刚开始在 Python 中使用 OpenMesh。我首先尝试制作一个由单个四边形组成的 PolyMesh。这就是我所做的:

这将创建一个四边形网格。然后,想改进四边形一次,我想尝试:

以上给了我一个complex edge错误。我从关于 SO 的其他问题中了解到,这是因为第二种情况下的 vh_list 没有定义第一面的一致方向。但是,我不想添加新面孔。也就是说,我认为该操作只会在 x = 0.5 处拆分 fh0,而不是在边缘索引 1 处创建附加到 fh0 的新面。有人可以谈谈如何做到这一点吗?我在文档中找不到“split_face”函数。

另外,如何在 Python 中访问特定边/网格组件的句柄?(我只找到了 C++ 的答案。)例如,我知道我可以遍历边缘,

但是,例如,我怎样才能直接获取边缘 2 的句柄并按如下方式使用它?

谢谢!

编辑 1

split在 OpenMesh 文档中找到了该函数,但它需要一个顶点句柄作为输入,我可以在该顶点句柄处分割面部。在拆分后,它将网格转换为三角形网格。我不想要这个。我想在 x = 0.5 处将四边形分成两个四边形。谢谢你。

编辑 2

我尝试了另一种方法:首先删除 fh0,然后根据我想要的细化添加两个新面 fh0 和 fh1。我试着做

和 Python 段错误并退出。

0 投票
1 回答
358 浏览

openmesh - 如何在不创建多边形的情况下从开放网格中删除三角形?

当我mesh.delete_face(face_handle)使用 OpenMesh 调用时,OpenMesh::TriMesh_ArrayKernelT<>我会以某种方式得到具有超过 3 个顶点的面,可能是由已删除面创建的孔周围的多边形。

我怎样才能避免这种情况,只在孔周围有一个边界但没有多边形?我有点惊讶 TriMesh 可以包含多边形面。