The CGAL Open Source Project is pleased to announce the release 5.0 Beta 2
of CGAL, the Computational Geometry Algorithms Library.
CGAL version 5.0 Beta 2 is a public testing release. It should provide a
solid ground to report bugs that need to be tackled before the release
of the final version of CGAL 5.0 in November.
The important changes since CGAL 5.0 Beta 1 are the fix of CMake
issues, with header-only installations, and the update of the section
“Getting Started with CGAL” of the documentation.
Besides fixes and general enhancement to existing packages, the following
has changed since CGAL 4.14:
- CGAL 5.0 is the first release of CGAL that requires a C++ compiler
with the support of C++14 or later. The new list of supported
- Visual C++ 14.0 (from Visual Studio 2015 Update 3) or later,
- Gnu g++ 6.3 or later (on Linux or MacOS),
- LLVM Clang version 8.0 or later (on Linux or MacOS), and
- Apple Clang compiler versions 7.0.2 and 10.0.1 (on MacOS).
- Since CGAL 4.9, CGAL can be used as a header-only library, with
dependencies. Since CGAL 5.0, that is now the default, unless
specified differently in the (optional) CMake configuration.
- The section “Getting Started with CGAL” of the documentation has
been updated and reorganized.
- The minimal version of Boost is now 1.57.0.
Polygonal Surface Reconstruction (new package)
- This package provides a method for piecewise planar object
reconstruction from point clouds. The method takes as input an
unordered point set sampled from a piecewise planar object and
outputs a compact and watertight surface mesh interpolating the
input point set. The method assumes that all necessary major planes
are provided (or can be extracted from the input point set using the
shape detection method described in Point Set Shape Detection, or
any other alternative methods).The method can handle arbitrary
piecewise planar objects and is capable of recovering sharp features
and is robust to noise and outliers. See also the associated blog
- BREAKING CHANGE: The concept ShapeDetectionTraits has been renamed
- BREAKING CHANGE: The Shape_detection_3 namespace has been renamed to
- Added a new, generic implementation of region growing. This enables
for example applying region growing to inputs such as 2D and 3D
point sets, or models of the FaceGraph concept. Learn more about
this new algorithm with this blog entry:
- BREAKING CHANGE: Several deprecated functions and classes have been
removed. See the full list of breaking changes in the release notes.
- BREAKING CHANGE: The constructor and the insert() function of
CGAL::Triangulation_2 or CGAL::Triangulation_3 which take a range of
points as argument are now guaranteed to insert the points following
the order of InputIterator. Note that this change only affects the
base class CGAL::Triangulation_ and not any derived class, such
Polygon Mesh Processing
- Introduced a wide range of new functions related to location of
queries on a triangle mesh, such as
CGAL::Polygon_mesh_processing::locate(Point, Mesh). The location of
a point on a triangle mesh is expressed as the pair of a face and
the barycentric coordinates of the point in this face, enabling
robust manipulation of locations (for example, intersections of two
3D segments living within the same face).
- Added the mesh smoothing function smooth_mesh(), which can be used
to improve the quality of triangle elements based on various
- Added the shape smoothing function smooth_shape(), which can be used
to smooth the surface of a triangle mesh, using the mean curvature
flow to perform noise removal.
Point Set Processing
- BREAKING CHANGE: the API using iterators and overloads for optional
parameters (deprecated since CGAL 4.12) has been removed. The
current (and now only) API uses ranges and Named Parameters.
The CGAL project is a collaborative effort to develop a robust,
easy-to-use, and efficient C++ software library of geometric data
structures and algorithms, like
- triangulations (2D constrained triangulations, 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),
- Boolean operations on polygons and polyhedra,
- regularized Boolean operations on polygons with curved arcs
- arrangements of curves,
- mesh generation (2D, 3D and surface mesh generation,
surface mesh subdivision and parametrization),
- alpha shapes (in 2D and 3D),
- convex hull algorithms (in 2D, 3D and dD),
- operations on polygons (straight skeleton and offset polygon),
- search structures (kd trees for nearest neighbor search, and
range and segment trees),
- interpolation (natural neighbor interpolation and placement of
- optimization algorithms (smallest enclosing sphere of points or
spheres, smallest enclosing ellipsoid of points, principal
Some modules are distributed under the terms of the LGPL Open Source
license (GNU Lesser General Public License v3 or later versions).
Most modules are distributed under the terms of the GPL Open Source
license (GNU General Public License v3 or later versions).
If your intended usage does not meet the criteria of the
aforementioned licenses, a commercial license can be purchased from
For further information and for downloading the library and its
documentation, please visit the CGAL web site: https://www.cgal.org/