一: CGAL是欧盟资助的基础几何库,很底层, 纯算法, 对于你的项目和科研都是不可多得的好东西, 废话一句, 国内做这样的东西, 估计会活不下去交不了差的. 不多介绍.送上
英文原址, 从软件角度, CGAL架构与STL模板库, 需要你有较好的C++功底. 英文功底就不用说了, 否则建议你选用其他的库, 否则会浪费更多的时间. CGAL有个四千多页的
详细pdf文档, 里面同时也是知识宝库.对cgal介绍见下:
The goal of the CGAL Open Source Project is to provide easy access to efficient and reliable geometric algorithms in the form of a C++ library. CGAL is used in various areas needing geometric computation, such as: computer graphics, scientific visualization, computer aided design and modeling, geographic information systems, molecular biology, medical imaging, robotics and motion planning, mesh generation, numerical methods... More on the projects using CGAL web page.
The Computational Geometry Algorithms Library (CGAL), offers data structures and algorithms like triangulations (2D constrained triangulations, and Delaunay triangulations and periodic triangulations in 2D and 3D), Voronoi diagrams (for 2D and 3D points, 2D additively weighted Voronoi diagrams, and segment Voronoi diagrams), polygons (Boolean operations, offsets, straight skeleton), polyhedra (Boolean operations), arrangements of curves and their applications (2D and 3D envelopes, Minkowski sums), mesh generation (2D Delaunay mesh generation and 3D surface and volume mesh generation, skin surfaces), geometry processing (surface mesh simplification, subdivision and parameterization, as well as estimation of local differential properties, and approximation of ridges and umbilics), alpha shapes, convex hull algorithms (in 2D, 3D and dD), search structures (kd trees for nearest neighbor search, and range and segment trees), interpolation (natural neighbor interpolation and placement of streamlines), shape analysis, fitting, and distances (smallest enclosing sphere of points or spheres, smallest enclosing ellipsoid of points, principal component analysis), and kinetic data structures.
All these data structures and algorithms operate on geometric objects like points and segments, and perform geometric tests on them. These objects and predicates are regrouped in CGAL Kernels.
Finally, the Support Library offers geometric object generators and spatial sorting functions, as well as a matrix search framework and a solver for linear and quadratic programs. It further offers interfaces to third party software such as the GUI libraries Qt, Geomview, and the Boost Graph Library.
二: 对CGAL的各个模块详细介绍见下面网址, 就不粘贴了.
http://doc.cgal.org/latest/Manual/packages.html
三:编译, 首先你对照官方文档进行编译:
http://doc.cgal.org/latest/Manual/installation.html#secgettingcgal
这个文档最为详细, 建议你仔细阅读.
四:最后还有几个点是我在文档中没有找到的, 是容易出错的几点,奉献下面.
1:cgal需要boost的名称是libboost_system-vc90-mt-gd-1_49.lib这样形式的, 本身boost编译的开头不是这个名称,是以boostboost_system-vc90-mt-gd-1_49.lib开头的,需要修改名称
后,设置好boost的环境变量,即可cmake编译通过.
2:里面的选项.从with, cgal这几项都要逐一对照, 是否需要, 不需要的尽量可以勾掉, 你的项目可能只需要个别功能, 没必要编译那么大的库.而且出错的概率相当高.
3:cgal里面较为复杂的demo都采用了插件式结构, 因此你如果发现不能运行就需要编译相关所有的demo, dll只要放在目录下面即可. 简单起见编译所有吧.看文档里面说是有ipe参考的http://sourceforge.net/projects/ipe7/files/archived_files/.
4:生成之后,总共六七百个工程项目. 你可以根据需要进行编译, 而不是一下子编译所有, 这样速度比较慢. 同时也可以针对每个demo一个个的看.