Subject: CGAL 5.3 Beta 1 Released, Computational Geometry Algorithms Library

The CGAL Open Source Project is pleased to announce the release 5.3 Beta 1
of CGAL, the Computational Geometry Algorithms Library.

CGAL version 5.3 Beta 1 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.3 in July 2021.

Besides fixes and general enhancement to existing packages, the following
has changed since CGAL 5.2:

Quadtrees, Octrees, and Orthtrees (new package)

-   This package implements a tree data structure in which each node
    encloses a hypercubic section of space and each non-leave node has
    hypercubic children whose edge lengths are half its edge length.
    Such a data structure is known as a quadtree in 2D, an octree in 3D,
    and is generalized as an “orthtree” in higher dimensions.

      https://www.cgal.org/2021/04/27/Orthtree/

      https://doc.cgal.org/5.3/Manual/packages.html#PkgOrthtree

Triangulations on the Sphere (new package)

-   This package enables the construction and manipulation of Delaunay
    triangulations on the 2-sphere. Triangulations are built
    incrementally and can be modified by insertion or removal of
    vertices. Point location querying and primitives to build the dual
    Voronoi diagram are provided.

      https://doc.cgal.org/5.3/Manual/packages.html#PkgTriangulationOnSphere2

File Input / Output

-   Point set, polygon soup, and polygon mesh file I/O functions have
    been harmonized and documented:
    -   Point set I/O functions can be found in the packages
        Point_set_processing_3, and Point_set_3.
    -   Polygon mesh I/O functions can be found in the package BGL.
    -   Polygon soup I/O can be found in the package Stream_support.

A comprehensive list of the supported file formats is available in the
Stream_support package:

    https://doc.cgal.org/5.3/Stream_support/index.html#IOstreamSupportedFormats

Inversely, the following page can be used to find out which CGAL data
structures can be used given a specific file format.

    https://doc.cgal.org/5.3/Stream_support/IOStreamSupportedFileFormats.html

Requirements

-   The CMake minimal version is now 3.14.

-   The GNU compiler g++ versions 6 and 7 are no longer tested. Only
    version 8.3 or later are supported

2D and 3D Linear Geometry Kernel

-   Added is_translation(), is_scaling(), is_reflection(), and
    is_rotation() to the classes Aff_transformation_2 and
    Aff_transformation_3, which enable determining if the
    transformations use a specialized representation internally.

2D Regularized Boolean Set-Operations

-   Added documentation for the free functions
    oriented_side(const Point_2& p, ....) that accept a point and a
    polygon.
-   Documentation has been improved across the whole package.

Polygon Mesh Processing

-   Added the class CGAL::Polyhedral_envelope, providing a way to
    quickly check if a primitive (point, segment, or triangle) is within
    a polyhedral envelope around a set of triangles. It is based on the
    work of Bolun Wang, Teseo Schneider, Yixin Hu, Marco Attene, and
    Daniele Panozzo. “Exact and efficient polyhedral envelope
    containment check.” (ACM Trans. Graph., 39-4, July 2020).
-   Added more functions in the visitor of the corefinement based
    methods to track all edge creations.

Surface Mesh Topology

-   Added the function
    CGAL::Surface_mesh_topology::Curves_on_surface_topology::is_homotopic_to_simple_cycle(),
    which can be used to determine whehter a closed path on a surface
    mesh can be continously transformed to a cycle without self
    intersection.

Surface Mesh Simplification

-   Added a filtering mechanism so that costly tests get only applied to
    the next candidate for the edge collapse.
-   Added the class Polyhedral_envelope_filter, which enables to perform
    mesh simplification inside a polyhedral envelope of the input mesh.

2D Polyline Simplification

-   When polylines have common subsequences of vertices, these
    subsequences may now be simplifified simultaneously.

dD Triangulations

-   Added the function insert_if_in_star() to the class
    CGAL::Regular_triangulation, which enables users to insert a point p
    in a regular triangulation on the condition that p appears
    post-insertion in the star of a user-specified, existing vertex.

2D and 3D Alpha Shapes

-   Breaking change: The following deprecated classes have been removed:
    Alpha_shape_euclidean_traits_2,
    Weighted_alpha_shape_euclidean_traits_2,
    Alpha_shape_euclidean_traits_3, and
    Weighted_alpha_shape_euclidean_traits_3. All CGAL kernel can be used
    directly as models of the concepts of the 2D and 3D Alpha Shape
    packages.

Classification

-   Breaking change: the support for TensorFlow has been dropped; the
    classifier CGAL::TensorFlow::Neural_network_classifier has been
    removed.

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
  streamlines),
- optimization algorithms (smallest enclosing sphere of points or
  spheres, smallest enclosing ellipsoid of points, principal
  component analysis).

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
GeometryFactory (http://www.geometryfactory.com/).

For further information and for downloading the library and its
documentation, please visit the CGAL web site: https://www.cgal.org/