我正在寻找一个C++库来对任意 3D 网格进行三角测量。最好是开源的,但至少对商业用途是免费的(所以CGAL几乎是不可能的(。
我看了 GTS,但它是用 C 语言编写的(C 与 C++ 兼容吗?(,它很旧,二进制文件适用于 Debian 平台(我需要 Windows 二进制文件或可以用 VC++ 2008 编译的源代码(。
任何帮助将不胜感激。
此外:
如果可以通过分别三角化每个面来使用 2D 多边形三角测量库,例如 polypartition 或 poly2tri,我可以保证每个面都保持在自己的平面上(每个面都是平面的,所有顶点都在同一平面上(并且没有孔。我不确定如何将面部的 3D 旋转转换为 2D 空间;我假设你需要使用面部的法线。我也不确定如果要分别对每个面进行三角测量,生成的 2D 顶点是否可以轻松合并回 3D 网格。
我自己解决了。事实证明,生成需要三角测量的网格的库 Carve 不一定可以免费用于商业用途,所以我不得不找到替代方案。我找到了 Boost(我没有意识到它有这些功能(,它对我来说是完美的许可证,是免费的,高质量的,并且似乎具有我需要的功能。所以。。。万岁!
看看梅树。它在麻省理工学院的许可下。