CGAL (Computational Geometry Algorithms Library)
CGAL是一套开源的C 算法库,提供了计算几何相关的数据结构和算法,诸如三角剖分(2D约束三角剖分及二维和三维Delaunay三角剖分),Voronoi图(二维和三维的点,2D加权Voronoi图,分割Voronoi图等),多边形,多面体(布尔运算),网格生成(二维Delaunay网格生成和三维表面和体积网格生成等),几何处理(表面网格简化,细分和参数化等),凸壳算法,搜索结构(近邻搜索,kd树等),插值,形状分析,拟合等。
CGAL功能非常强大,是我们学生做科研的必备程序库之一。 但需要较强的C 代码掌控能力,特别是基于C Template的开发。 CGAL CGAL系大名鼎鼎的计算几何算法库,采用C 语言,代码中大量使用模板,相对比较难读。可以支持float, double, CORE的高精度或者gmp等任意精度库。
安装CGAL 在Windows下,建议采用Setup.exe进行安装,因为可以设定自动下载依赖库gmp, mpfr。
安装时会自动勾选,添加CGAL_DIR用户变量至CGAL安装目录,还有 CGAL/auxiliary/gmp/lib 至PATH路径;这个也可以不勾选,但对后面使用时稍有不便。
采用Setup.exe默认不勾选文档,如果安装后没有文档,可下载后缀为 doc_html.zip 的压缩包解压覆盖同目录 doc_html 文件夹。
CGAL使用 CGAL从版本4.9开始支持仅以头文件使用,但是虽然仅作为头文件使用,仍然需要运行CMake产生一些配置文件。
参考CGAL文档7.3.1 Header-only with CMake Configuration,执行如下脚本:
cd CGAL-4.13.1 # go to CGAL directory cmake -DCGAL_HEADER_ONLY=ON . # configure CGAL 到了CGAL4.12版时,Header-only 甚至不再需要CMake配置,但是依赖项(比如gmp,mpfr)并不是以头文件依赖的。
参考CGAL文档7.3.2 Header-only without CMake Configuration,使用CGAL变成下面这样的:
代码语言:javascript复制set PATH=C:Program FilesCMakebin;%PATH%
set BOOST_ROOT=F:OpenProjscontribboostboost_1_66_0
set CGAL_DIR=F:OpenProjscontribcgalCGAL-4.11.1
cmake.exe -G "Visual Studio 14 2015" .