问题标签 [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 回答
118 浏览

python - 在 numpy.asarray 中添加新行会导致 ValueError

在添加邻居语句(我用“新”评论)之前,一切正常。现在,使用numpy.asarray时,出现以下错误:

ValueError:无法将输入数组从形状 (3,3) 广播到形状 (3)。

我真的很困惑,因为新行并没有改变旋转阵列的任何内容。

0 投票
0 回答
414 浏览

python - Openmesh,多边形三角剖分

有谁知道openmesh库是否可以对一个简单的封闭多边形进行三角剖分?

我目前正在创建一个 PolyMesh,其中边界由定义简单闭合多边形的一系列顶点表示。但是,当我将其保存在 .ply 文件中时,我得到了错误的结果。因此,我在考虑是否将多边形面指定为三角形面的集合,但为了做到这一点,我需要先执行三角剖分。

在我看来,openmesh 似乎无法做到这一点,有人知道吗?

供参考。我正在使用 pythonm,另外值得一提的是我的多边形是平面的。

例如,您可以查看以下层:

原始顶点:

生成层的一段代码:

0 投票
1 回答
628 浏览

c++ - 如何使用 OpenMesh 设置人脸的颜色?

我试图只设置某个人脸的颜色,而我的代码不断抛出错误。

该行mesh.set_color(*f_it, clr);抛出错误(关于属性错误)。我尝试将其更改为,mesh.set_color(f_it.handle(), clr);但这会引发取消引用错误。

我要正确设置颜色吗?

0 投票
1 回答
2033 浏览

cmake - 无法在 CLion 中使用随 VCPKG 安装的库

我按照VCPKG github站点中描述的教程 ,然后安装了OpenMesh 8.0,之后,我链接了工具链

在 Clion 工具链设置中以及当我重新加载CMakeLists.txt我在 Clion 项目中更改的内容时:

Clion 输出返回以下错误:

0 投票
0 回答
354 浏览

python - 尝试为 python 安装 openmesh 时出现 Cmake 错误

我想为 python 安装 openmesh。我试过:在pycharm的终端中安装openmesh。我正在使用 Windows 10 和 Python 3.8。我已经使用 pip install cmake 安装了 cmake。

现在出现以下错误:


有谁知道该怎么做?我很感谢任何帮助!

0 投票
1 回答
434 浏览

c++ - 如何使用 OpenGL 绘制 OpenMesh

我正在做一个项目,我使用OpenMesh读取stlobj文件并使用openGL在屏幕上绘制它们。我一直在做以下事情,

并且在绘制时我只是像这样将verticesnormals向量传递给顶点着色器

顶点着色器如下所示:

片段着色器是:

这会产生很好的结果,但是将顶点和法线的另一个副本存储在另一个位置 (normalsvertices) 以便能够绘制网格的想法看起来非常违反直觉。

我想知道我是否可以使用带有openMesh的openGL缓冲区来优化它。我一直在搜索有关此主题的任何内容,但一无所获。

0 投票
1 回答
437 浏览

openmesh - OpenMesh 获取面/顶点/边的数量

有没有办法在OpenMesh中直接获取网格中的面、顶点和边的数量?人们总是可以遍历它们并计算它们,但我想知道是否有任何成员变量保存它们,或者是否有任何向量存储它们并且可以检查该向量的大小?

0 投票
0 回答
66 浏览

openmesh - OpenMesh 中的裂缝打开/拓扑变化

我在 OpenMesh 中使用三角形网格(TriMesh),需要进行图中所示的拓扑变化。这些是边缘的开裂,无论是在边界处还是在网格体内。据我所知,有几种方法可以实现:

  1. 删除并重新插入一个或两个相邻面。
  2. 使用该vertex_split()功能并删除添加的额外面。
  3. 使用该split()功能分割面或边,然后删除多余的面。

问题是这些方法都没有保留最初存在的面和半边。我需要在面和相邻的半边上存储属性,因此我需要在开裂时保留它们。有没有办法在 OpenMesh 中做到这一点(可能是低级功能)?理想情况下,应该保留面和相邻的半边,并且唯一新引入的半边应该是裂缝的边界半边(第一种情况下为 2 个,第二种情况下为 4 个)。

编辑:我认为这vertex_split()不会对称地分割半边。根据文档, v_l -- v0 和 v_r--v0 是两条新边,我假设有两条新的半边。如果将来自 v_l--v1 和 v_r--v1 的半边传送到 v_l--v_0 和 v_r--v0,并且将新的半边插入到 v_l--v1 和 v_r--v1 中,将会更加有用。这样,网格的其余部分(相邻面及其相邻的半边)将在vertex_split()操作时保持不变。

Edit2:我想真正的问题是如何将由两个半边组成的边分割成两个单独的边,每个边各有一个初始半边(加上每个新创建的半边)。查看源代码,我有关于如何重新连接这些半边的线索,但它们必须以某种方式在两个单独的边之间分割。

裂缝

0 投票
1 回答
141 浏览

openmesh - OpenMesh 将所有标准和自定义属性从一个网格元素复制到另一个网格元素

OpenMesh 提供了在网格元素(面、顶点、半边、边)上存储属性的可能性,如此处所述。是否有可用的功能将所有这些属性从一个元素复制到另一个元素?

0 投票
1 回答
322 浏览

openmesh - OpenMesh 找到连接两个顶点的边

OpenMesh 中是否有一个现成的函数可以返回连接两个顶点的边缘句柄?对于半边有find_halfedge(vertex1, vertex2)功能,但我找不到相应的find_edge(vertex1, vertex2)功能。目前我正在使用自己的,但我想知道是否有比这更好的方法。本质上,我正在迭代两个顶点的周围边缘并检查它们的半边指向的位置: