我正在寻找一个好的3D网格库
我已经尝试了CGAL和OpenMesh,但在最后一点都失败了。
特别是CGAL,即使使用最先进的代码分析工具也无法遵循。
到目前为止,我正在认真考虑自己动手。
我的偏好是C ++,但我对其他选项持开放态度。
答案 0 :(得分:12)
请问为什么最后一点是要求?
为公共消费而编写的图书馆旨在尽可能通用,以便最广泛的受众可以使用。在C ++中,这通常最好使用模板完成。如果找到一个好的图书馆,只会发现它对你的目的没用,因为它使用浮动而不是双打,这会非常糟糕。
例如,CGAL似乎采用了众所周知且经过良好测试的STL范式,即编写通用和可扩展的C ++库。这确实使得难以使用代码分析工具;我怀疑他们在追随STL标题方面也很擅长。但是你想尝试使用该库还是修改它?无论哪种方式,它们似乎都有一些非常高质量的文档(例如Kernel Manual),这些文档应该能够比较简单地找出你需要做什么,而不必诉诸于阅读他们的代码。
免责声明:我知道这不是你所要求的。但我不认为你在寻找什么。很难找到开源代码,文档和我通过CGAL扫描的文档一样好。格外非常罕见。我强烈建议你再看看它。
答案 1 :(得分:2)
首先,一些关于你要求的一般性评论:
据我了解你的问题,在我看来,你并没有清楚地看到像CGAL和OpenMesh这样的库。这些库可能无法提供您需要的所有更高级别的工具,但它们的目的是为您(特别是在CGAL案例中)提供构建几何应用程序的所有几何框架。这种几何框架的设计非常精巧,特别是因为坚固性问题,这对计算几何非常具体。如果没有这样的框架,构建一个强大的应用程序是一项可怕的工作。
如果找不到适合自己需要的库,则应认真考虑使用CGAL等库作为开发的基础框架。它将防止出现与健壮性相关的问题,通常只会在开发过程的后期开始注意到,当更改底层框架时会很痛苦。另外,CGAL有广泛的文档和非常活跃的用户邮件列表。
如果您不了解几何软件中的稳健性问题,请查看此页面: robustness issues
答案 2 :(得分:0)
我不知道它对你有用。还有另一个图书馆,名为红树林TDS图书馆,免费提供http://mangrovetds.sourceforge.net它支持任何类型的形状(2d,3d,任何尺寸),任何领域(流形,非流形,伪流形) ,iqm复合物,单纯复合物等)。它可能支持非规则形状,即由不同维度的片段形成。
它的主要特性是它是可扩展的,因为支持任何拓扑数据结构。它是一个插件,可以在运行时更改和加载。
它的实现基于实体的基于数组的索引,以数据结构编码,支持迭代器。它还支持动态属性。
最后,它支持不直接编码在数据结构中的实体的隐式表示(重影实体),这提高了拓扑查询的效率