CGAL Mesh网格分割(基于平面)

文章目录

  • 一、简介
  • 二、实现代码
  • 三、实现效果
  • 参考资料

一、简介

与Mesh的裁切功能类似,CGAL的是将平面转换为一个TriangleMesh(三角网格),之后将其与我们输入的Mesh数据求交来获取最终的分割数据。大致的过程如下所述:

  1. 首先,CGAL会求出Mesh数据的包围盒,之后会判断我们指定的平面是否与这个包围盒存在交集,存在则求出这个相交的多边形,反之则直接退出裁剪过程。
  2. 基于相交的多边形,构建一个平面Mesh。
  3. 创建一个受约束的边缘图,之后用分割器(也就是平面Mesh)对输入网格进行细化,并标记边缘。
  4. 最后,沿着标记的边缘分割网格,至此算法结束。

由于CGAL网上的资料很少,这个过程是我大概看了一下源码,简单的总结了一些计算过程,如果有所出入还请以CGAL的源代码为准。具体使用方式,如下所示:

二、实现代码

//CGAL

你可能感兴趣的:(Easy3D&CGAL,平面,C++,CGAL,Mesh网格分割(基于平面))