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

3d - 计算网格 OpenMesh 的顶点价

这是我第一次使用 OpenMesh,我正在尝试做一个非常简单的函数来计算网格中所有顶点的化合价。

我的第一次尝试看起来像这样

价数与网格数不同(参见 std::cout)。我知道我遗漏了一些东西,任何人都可以看到错误在哪里?

更新

我使用以下代码使其工作

现在两个数字匹配。但是,我想知道是否可以使用我放置的第一个代码来实现相同的功能。思路应该是一样的。

0 投票
2 回答
555 浏览

graphics - openmesh EdgeHandle 类

因此,我将 OpenMesh 库用于项目,并将 EdgeHandle e 传递给方法。是否有可能看到这条边连接了哪两个面?我尝试在网上查找,但 openMesh 的文档非常稀少,而 EdgeHandle 的内容甚至更稀少。

0 投票
3 回答
4916 浏览

c++ - Iterating over edges and getting their vertices with OpenMesh

I am starting to use OpenMesh to go through meshes which may have wholes and am wondering what is the good way to actually retrieve the vertices associated with each edge.

For half-edges, there are the methods opposite_he_opposite_vh and opposite_vh of the mesh, but these trigger an error if the opposite half-edge does not exist (we are currently on a boundary half-edge).

Given that I'll encounter these often, what's a better way to iterate over all edges (I actually don't specifically care about half-edge, I'm getting data for each edge, but the direction doesn't matter. What I need are the two vertices)?

0 投票
1 回答
963 浏览

mesh - OpenMesh 随机访问

我认为 OpenMesh 将支持对面边顶点的随机访问。我能找到的只有迭代器和循环器:

我该怎么做这样的事情:

0 投票
2 回答
3400 浏览

c++ - 在 Openmesh 中将网格拆分为连接的组件

我有一个 obj 文件网格,我想通过OpenMesh从中提取连接的组件。我可以找到边界顶点和边,但是有没有办法在 Openmesh 中直接将网格分割成连接的组件?

0 投票
1 回答
247 浏览

visual-c++ - OpenMesh: remove_property : 不是 Decimater::DecimaterT 的成员

我正在尝试在OpenMesh. 我遵循了此链接中提供的基本设置:http: //openmesh.org/Documentation/OpenMesh-2.0-Documentation/decimater_docu.html但我收到以下错误,它来自modquadrict.hh(part of the library).

主文件

MyMesh.h

0 投票
2 回答
3389 浏览

c++ - OpenMesh 中的 addface::complex 边缘错误

我一直在关注 OpenMesh 教程First Steps - Building a Cube并进行了一些修改,我使用 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

我找不到与教程不同的任何其他内容。

0 投票
1 回答
1448 浏览

mesh - OpenMesh,抽取,Lindstrom-Turk

在我的应用程序中,我使用了很多三角形网格,有时我需要减少其中的三角形数量(折叠一些边)。对于网格处理,我使用 openmesh (openmesh.org),因为它是现代的 (C++),但主要是因为它不会拖累大量依赖项(仅依赖于 c++ std 并且任何现代编译器都可以处理它(我需要跨平台) Linux/Windows/Mac OSX))。

现在我需要减少(openmesh 术语中的抽取)一些网格,但我需要保留边界。(有问题的网格是原始网格(512x512),但在它们的中心,一些凹面元素被挤出/添加,关键是在缩小后网格的外边缘仍然形成矩形)

我看不到任何方法可以在 openmesh 中抽取它们并保留体积/轮廓,所有 OpenMesh::Decimater::Mod* 抽取模块都使用二次作为其基础。

在 GTS(GNU Triangulated Surface Library)中,实现了 Lindstrom-Turk 缩减,非常适合我的需求(我做了一些肮脏的包装来测试它是否是我想要的)并且它可以工作,但是 GTS 存在问题 - 它是不是多线程保存(我在多个线程上减少了许多网格)并且使用 GTS 是不可能的,因为它使用库中的全局变量来禁用/启用某些东西,同时减少网格:/)(而且它也拖了整个 glib,因为它是依赖项)

还有 CGAL,它也实现了 Lindstrom-Turk,但它本身拖了整个 boost 和其他依赖项:/

是否有任何用于 openmesh 的抽取器模块可以通过边界/体积保留进行抽取?(我已经搜索过,但没有找到:/)

0 投票
2 回答
926 浏览

python - 使用 Python 3.4 的 OpenMesh?

我对 python 及其 C++ 包装器(如 boost python)比较陌生。我试图让 OpenMesh C++ 库 python 绑定与 python 3 一起工作。

有人知道它是否已经可能吗?OpenMesh 更改日志中有一些提示,并且在一年前添加了一些针对 python 3 的测试。 https://graphics.rwth-aachen.de:9000/OpenMesh/OpenMesh/commit/c6382d800ffb9b48347e748a32e658697125d5b2

所以我尝试构建最新的 BoostPython

在http://www.openmesh.org/Daily-Builds/Doc/a00036.html设置所有环境变量

OpenMesh 完美地构建了一个美妙的 openmesh.so 。

但是尝试将它与 Python3 解释器输出一起使用:

Python 2 工作正常,所以这是不可能的还是我做错了什么?

感谢和问候

0 投票
0 回答
86 浏览

mesh - OpenMesh 将循环器转换为迭代器

我正在使用OpenMesh,并尝试在BFS中基于顶点进行迭代,我可以以VertexVertexiterator的形式获取该顶点的邻居,但我想要Vertexitrator形式的邻居,我怎样才能以这种形式获得它,谢谢~