CGAL Mesh网格分割(基于平面)
文章目录
- 一、简介
- 二、实现代码
- 三、实现效果
- 参考资料
一、简介
与Mesh的裁切功能类似,CGAL的是将平面转换为一个TriangleMesh(三角网格),之后将其与我们输入的Mesh数据求交来获取最终的分割数据。大致的过程如下所述:
- 首先,CGAL会求出Mesh数据的包围盒,之后会判断我们指定的平面是否与这个包围盒存在交集,存在则求出这个相交的多边形,反之则直接退出裁剪过程。
- 基于相交的多边形,构建一个平面Mesh。
- 创建一个受约束的边缘图,之后用分割器(也就是平面Mesh)对输入网格进行细化,并标记边缘。
- 最后,沿着标记的边缘分割网格,至此算法结束。
由于CGAL网上的资料很少,这个过程是我大概看了一下源码,简单的总结了一些计算过程,如果有所出入还请以CGAL的源代码为准。具体使用方式,如下所示:
二、实现代码
//CGAL