** CGAL官方文档的解析可能会比较慢,涉及的数学理论和数据结构的加速处理很多(稍微偷懒一下感觉就要拖不少时间),所以会穿插一些代码的应用,代码实践主要集中与一般工程中应用的代码;对于涉及创新且关注度少的算法可能还是会采取理论解析和代码实践相结合的方式,如果时间不够的话会直接上代码。
简述思路
借助CGAL几何库,分为以下步骤:
- 借助CGAL中Constrained_Delaunay_triangulation_2这个类,这个类实际就是处理限制剖分的
- 把曲面转为曲面为surface mesh类型,因为要polygon processing接口,其他格式可以用copy_face_graph转换;但是限制剖分需要通过标记限制区域进行曲面的复制
- 利用mark_domain_in_triangulation进行区域标记,这应该是5.6新出的函数,5.5的时候例子里面有但没有在源码里面
问题
- 实际上Constrained_Delaunay_triangulation_2类进行限制剖分的时候根据实验无法自动添加与边界的交点,这导致了产生的三角面出现共面或退化的概率大大增加,这个需要自动处理(处理方法为求出交点重新生成新边界或者改进CCGAL提供的限制剖分算法)
- 删除面的时候用remove_fa