簡體   English   中英

網格到網格交叉的C ++庫:可用的是什么?

[英]C++ library for mesh to mesh intersection: what is available?

我需要計算三維三角網格之間的體積交點和穿透深度(例如.obj格式),但我對計算幾何是個新手。

在上一篇文章( 網格到網格交叉點 )和我的谷歌搜索中,我找到了一些可能適合這項工作的C ++庫:

  • CGAL
  • 研究生預科課程
  • libigl
  • 迅速

雖然,我不確定哪一個最適合初學者。 有什么建議嗎?

libigl為1.1版在具有堅固的網狀布爾運算igl/boolean/mesh_boolean.h 這使用了使用CGAL精確算術內核的實現或者軟木包裝器(另一個選項)。

目前,libigl還在libigl/external/cork包含了一個修補后的軟木版本,大大提高了健壯性。

在實現libigl的布爾運算時,我發現軟木塞更快但並不總能產生正確的結果(具體來說,它無法解決所有交叉點)。

Libigl使用CGAL作為后端,與將網格轉換為CGAL的Nef_polyhedron ,進行CSG操作並轉換回網格相比,是最強大且仍然快速的。 只有結果是多方面的,才能進行最后的轉換。 相反,libigl僅使用CGAL進行精確的三角形 - 三角形交叉和2D網格划分。 正確的,非歧管輸出是沒有問題的。

Libigl的界面對於Eigen的用戶來說非常簡單和熟悉。 例如,要查找VA行中頂點的實體網格與FA行和另一個網格(VB,FB)中的三角形索引之間的交集,並將輸出存儲在新網格(VC,FC)

#include <igl/boolean/mesh_boolean.h>
...
igl::mesh_boolean(VA,FA,VB,FB,MESH_BOOLEAN_TYPE_UNION,VC,FC);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM