Skip to content

Releases: CGAL/cgal

CGAL 6.0

27 Sep 15:57
v6.0
50219fc
Compare
Choose a tag to compare

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

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

General Changes

  • CGAL 6.0 is the first release of CGAL that requires a C++ compiler with the support of C++17 or later. The new list of supported compilers is:

    • Visual C++ 15.9, 16.10, 17.0 (from Visual Studio 2017, 2019 and 2022) or later
    • Gnu g++ 11.4.0 or later (on Linux or macOS)
    • LLVM Clang version 15.0.7 or later (on Linux)
    • Apple Clang compiler versions 10.0.1, 12.0.5, and 15.0.0 (on macOS)
  • The minimal supported version of Boost is now 1.72.0.

  • GMP/MPFR are no longer mandatory to use CGAL, Boost.Multiprecision. can be used instead.

  • The CGAL Core library is no longer based on GMP, but on Boost.Multiprecision. Either GMP backend or Boost backend can be used.

  • All demos are now based on Qt6.

  • Breaking change: The CMake file UseCGAL.cmake has been removed from CGAL. Usages of the CMake variables ${CGAL_USE_FILE} and ${CGAL_LIBRARIES} must be replaced by a link to the imported target CGAL::CGAL, for example:

        target_link_library(your_target PRIVATE CGAL::CGAL)

Kinetic Space Partition (new package)

  • This package implements kinetic space partition: based on a set of planar input shapes, the bounding box of the input data is split into convex volumes. The complexity of the partition can be adjusted with a single parameter.

Kinetic Surface Reconstruction (new package)

Basic Viewer (new package)

Polygon Repair (new package)

  • This package provides algorithms to repair 2D polygons, polygons with holes, and multipolygons with holes, by selecting faces of the arrangement of the input using the odd-even heuristic.

2D and 3D Linear Geometry Kernel

  • Breaking change: Replaced all instances of boost::variant with std::variant in the intersection functions.
  • Breaking change: Replaced all instances of boost::optional with std::optional in the intersection functions.

3D Polyhedral Surface

  • The demo of this package, also known as “Polyhedron Demo” has been renamed “CGAL Lab” and moved to its own package (“Lab”).

2D and 3D Fast Intersection and Distance Computation (AABB Tree)

2D Arrangements

  • Breaking change: Replaced all instances of boost::variant with std::variant.
  • Breaking change: The type of the result of point location queries has been changed to std::variant. Support for the old macro CGAL_ARR_POINT_LOCATION_VERSION has been removed.
  • Breaking change: Eliminated the error-prone C-type casting that was used to define observers. In general, backward compatibility was maintained; however, the class template CGAL::Arr_observer has been replaced by an alias template. (The class CGAL::Arr_observer was renamed to CGAL::Aos_observer).
  • Introduced Arr_dcel, which essentially replaces the former CGAL::Arr_default_dcel. Backward compatibility was maintained by the introduction of the alias template CGAL::Arr_default_dcel. CGAL::Arr_dcel, as opposed to the former CGAL::Arr_default_dcel is templated (in addition to the geometry traits) by Vertex, Halfedge, and Face template parameters, and they have default type values. All this enables the layered extension of DCEL records.
  • Fixed a bug in the zone construction code applied to arrangements of geodesic arcs on a sphere, when inserting an arc that lies on the identification curve.
  • Introduced a new interactive program that demonstrates 2D arrangements embedded on the sphere called earth. The program (i) reads a database of all administrative boundaries of the countries in the world, (ii) displays the globe with all countries and land covered by water (which is land not covered by countries) on a window, and (ii) enables interaction with the user.

3D Envelopes

  • Breaking change: [Construct_projected_boundary_2](https://d...
Read more

CGAL 6.0-beta1

21 Jun 15:39
v6.0-beta1
9075f96
Compare
Choose a tag to compare
CGAL 6.0-beta1 Pre-release
Pre-release

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

CGAL version 6.0 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 6.0 in July 2024.

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

General Changes

  • CGAL 6.0 is the first release of CGAL that requires a C++ compiler with the support of C++17 or later. The new list of supported compilers is:
    • Visual C++ 15.9, 16.10, 17.0 (from Visual Studio 2017, 2019 and 2022) or later
    • Gnu g++ 11.4.0 or later (on Linux or macOS)
    • LLVM Clang version 15.0.7 or later (on Linux)
    • Apple Clang compiler versions 10.0.1, 12.0.5, and 15.0.0 (on macOS)
  • The minimal supported version of Boost is now 1.72.0.
  • The CGAL Core library is no longer based on GMP, but on Boost.Multiprecision. Either GMP backend or Boost backend can be used.
  • All demos are now based on Qt6.
  • Breaking change: The CMake file UseCGAL.cmake has been removed from CGAL. Usages of the CMake variables ${CGAL_USE_FILE} and ${CGAL_LIBRARIES} must be replaced by a link to the imported target CGAL::CGAL, for example: target_link_library(your_target PRIVATE CGAL::CGAL).

Kinetic Space Partition (new package)

  • This package implements kinetic space partition: based on a set of planar input shapes, the bounding box of the input data is split into convex volumes. The complexity of the partition can be adjusted with a single parameter.

Kinetic Surface Reconstruction (new package)

Basic Viewer (new package)

Polygon Repair (new package)

  • This package provides algorithms to repair 2D polygons, polygons with holes, and multipolygons with holes, by selecting faces of the arrangement of the input using the odd-even heuristic.

2D and 3D Linear Geometry Kernel

  • Breaking change: Replaced all instances of boost::variant with std::variant in the intersection functions.
  • Breaking change: Replaced all instances of boost::optional with std::optional in the intersection functions.

3D Polyhedral Surface

  • The demo of this package, also known as “Polyhedron Demo” has been renamed “CGAL Lab” and moved to its own package (“Lab”).

2D and 3D Fast Intersection and Distance Computation (AABB Tree)

2D Arrangements

  • Breaking change: Replaced all instances of boost::variant with std::variant.
  • Breaking change: The type of the result of point location queries has been changed to std::variant. Support for the old macro CGAL_ARR_POINT_LOCATION_VERSION has been removed.
  • Breaking change: Eliminated the error-prone C-type casting that was used to define observers. In general, backward compatibility was maintained; however, the class template CGAL::Arr_observer has been replaced by an alias template. (The class CGAL::Arr_observer was renamed to CGAL::Aos_observer).
  • Introduced Arr_dcel, which essentially replaces the former CGAL::Arr_default_dcel. Backward compatibility was maintained by the introduction of the alias template CGAL::Arr_default_dcel. CGAL::Arr_dcel, as opposed to the former CGAL::Arr_default_dcel is templated (in addition to the geometry traits) by Vertex, Halfedge, and Face template parameters, and they have default type values. All this enables the layered extension of DCEL records.
  • Fixed a bug in the zone construction code applied to arrangements of geodesic arcs on a sphere, when inserting an arc that lies on the identification curve.
  • Introduced a new interactive program that demonstrates 2D arrangements embedded on the sphere called earth. The program (i) reads a database of all administrative boundaries of the countries in the world, (ii) displays the globe with all countries and land covered by water (which is land not covered by countries) on a window, and (ii) enables interaction with the user.

3D Envelopes

  • Breaking change: [Construct_projected_boundary_2](https://...
Read more

CGAL 5.6.1

28 Feb 13:42
v5.6.1
Compare
Choose a tag to compare

CGAL-5.6.1 is a bug-fix release.

See on Github the list of bugs that were solved since CGAL-5.6.

CGAL 5.5.4

28 Feb 13:40
v5.5.4
Compare
Choose a tag to compare

CGAL-5.5.4 is a bug-fix release.

See on Github the list of bugs that were solved since CGAL-5.5.3.

CGAL 5.6

28 Jul 13:44
v5.6
Compare
Choose a tag to compare

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

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

General Changes

  • Breaking change: Package-specific assertions, preconditions, and postconditions (such as CGAL_triangulation_assertion) have been removed. Corresponding CGAL-wide versions (such as CGAL_assertion) should be used instead.

Shape Detection (major changes)

  • Breaking change: The region growing part of the package have been reworked to fix design issues introduced with the handling of FaceGraph models. In particular, the notion of Item has been introduced to reference an element in the input range of elements. Region maps now operates on Item and no longer on the value type of the input range.
  • Breaking change: The method update() in the concept RegionType now returns a Boolean instead of void, that is used inside the class Region_growing for detecting if the input conditions for the new region are satisfied. This change affects only user-defined types of regions.
  • Breaking change: The constructors of all models used together with the region growing algorithm now enable users to provide parameters through the named parameters mechanism.
  • All fitting classes in the region growing framework are now using better versions of the region conditions, more precise and faster, including the correct normal orientations.
  • Added new models of the concept RegionType for getting linear regions in a set of 2D and 3D segments and on 2D and 3D polylines.
  • Added the class Polyline_graph for extracting a set of polylines from a face graph, which splits this graph into a set of user-defined regions.
  • Added new shapes to the Region Growing algorithm on a point set: circles in 2D, spheres in 3D, and cylinders in 3D.

2D Straight Skeleton and Polygon Offsetting (major changes)

  • Added weighted straight skeletons: weighted straight skeletons are a generalization of straight skeletons. Contour edges are assigned a positive weight, which can be understood as assigning a speed to the wavefront spawned from the contour edge.
  • Added straight skeleton extrusion: this CGAL package now implements the extrusion of weighted straight skeletons of polygons with holes. The output is a closed, combinatorially 2-manifold surface triangle mesh.
    See also the news entry.

2D and 3D Linear Geometry Kernel

  • Added the functor CompareAngle_3 to the concept Kernel to compare an angle defined by three points to the cosinus of another angle.

Combinatorial Maps, Generalized Maps, and Linear Cell Complex

  • Added a version that uses indices instead of handles as dart and attribute descriptors. As the indices are integers convertible from and to std::size_t, they can be used as index into vectors which store properties. To use the index version, Use_index must be defined and be equal to CGAL::Tag_true in the item class.

Linear Cell Complex

2D Arrangements

  • Introduced an overload function template, namely draw(arr), that renders arrangements based on the Basic_viewer_qt class template. As of now, only 2D arrangements on the plane induced by (i) segments, (ii) conics, and (iii) circular arcs or (linear) segments are supported.
  • Improved the traits class template that handles conics, namely Arr_conic_traits_2. This includes the following: 1. Fixed a couple of bugs and slightly optimized some functions. 2. Introduced functionality that approximates conics with polylines. (This is used to draw conic curves.) 3. Breaking change: Changed the interface to generate conic curves. In the past, curves where generated directly using the constructors of the conic and x-monotone conic constructs. Now, they are constructed via function objects provided by the traits. This eliminates the constructions of temporary kernels. The old functionality is obsolete, but still supported for a limited number of versions. It depends on a static member function of the traits. In a future version this function will no longer be static, implying that the old functionality will no longer be supported.
  • Introduced functionality that approximates circular segments with polylines. (This is used to draw conic curves.)

Polygon Mesh Processing

2D Convex Hulls

Read more

CGAL 5.5.3

28 Jul 12:01
v5.5.3
Compare
Choose a tag to compare

CGAL-5.5.3 is a bug-fix release.

See on Github the list of bugs that were solved since CGAL-5.5.2.

CGAL 5.4.5

28 Jul 11:59
v5.4.5
Compare
Choose a tag to compare

CGAL-5.4.5 is a bug-fix release.

See on Github the list of bugs that were solved since CGAL-5.4.4.

CGAL-5.6-beta1

13 Jun 16:21
v5.6-beta1
Compare
Choose a tag to compare
CGAL-5.6-beta1 Pre-release
Pre-release

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

CGAL version 5.6 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.6 in July 2023.

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

General Changes

  • Breaking change: Package-specific assertions, preconditions, and postconditions (such as CGAL_triangulation_assertion) have been removed. Corresponding CGAL-wide versions (such as CGAL_assertion) should be used instead.

Shape Detection (major changes)

  • Breaking change: The region growing part of the package have been reworked to fix design issues introduced with the handling of FaceGraph models. In particular, the notion of Item has been introduced to reference an element in the input range of elements. Region maps now operates on Item and no longer on the value type of the input range.
  • Breaking change: The method update() in the concept RegionType now returns a Boolean instead of void, that is used inside the class Region_growing for detecting if the input conditions for the new region are satisfied. This change affects only user-defined types of regions.
  • Breaking change: The constructors of all models used together with the region growing algorithm now enable users to provide parameters through the named parameters mechanism.
  • All fitting classes in the region growing framework are now using better versions of the region conditions, more precise and faster, including the correct normal orientations.
  • Added new models of the concept RegionType for getting linear regions in a set of 2D and 3D segments and on 2D and 3D polylines.
  • Added the class Polyline_graph for extracting a set of polylines from a face graph, which splits this graph into a set of user-defined regions.
  • Added new shapes to the Region Growing algorithm on a point set: circles in 2D, spheres in 3D, and cylinders in 3D.

2D Straight Skeleton and Polygon Offsetting (major changes)

  • Added weighted straight skeletons: weighted straight skeletons are a generalization of straight skeletons. Contour edges are assigned a positive weight, which can be understood as assigning a speed to the wavefront spawned from the contour edge.
  • Added straight skeleton extrusion: this CGAL package now implements the extrusion of weighted straight skeletons of polygons with holes. The output is a closed, combinatorially 2-manifold surface triangle mesh.
    See also the news entry.

2D and 3D Linear Geometry Kernel

  • Added the functor CompareAngle_3 to the concept Kernel to compare an angle defined by three points to the cosinus of another angle.

Combinatorial Maps, Generalized Maps, and Linear Cell Complex

  • Added a version that uses indices instead of handles as dart and attribute descriptors. As the indices are integers convertible from and to std::size_t, they can be used as index into vectors which store properties. To use the index version, Use_index must be defined and be equal to CGAL::Tag_true in the item class.

Linear Cell Complex

2D Arrangements

  • Introduced an overload function template, namely draw(arr), that renders arrangements based on the Basic_viewer_qt class template. As of now, only 2D arrangements on the plane induced by (i) segments, (ii) conics, and (iii) circular arcs or (linear) segments are supported.
  • Improved the traits class template that handles conics, namely Arr_conic_traits_2. This includes the following: 1. Fixed a couple of bugs and slightly optimized some functions. 2. Introduced functionality that approximates conics with polylines. (This is used to draw conic curves.) 3. Breaking change: Changed the interface to generate conic curves. In the past, curves where generated directly using the constructors of the conic and x-monotone conic constructs. Now, they are constructed via function objects provided by the traits. This eliminates the constructions of temporary kernels. The old functionality is obsolete, but still supported for a limited number of versions. It depends on a static member function of the traits. In a future version this function will no longer be static, implying that the old functionality will no longer be supported.
  • Introduced functionality that approximates circular segments with polylines. (This is used to draw conic curves.)

Polygon Mesh Processing

2D Convex Hulls

  • Breaking change: The concept ConvexHullTraits_2 no longer requires the functor Less_signed_distance_to_line_2, but requires the functor Compare_signed_distance_to_line_2 instead.
  • The long-deprecated classes Convex_hull_projective_xy_traits_2, Convex_hull_projective_xz_traits_2, and Convex_hull_projective_yz_traits_2 have been removed. Users should use Projection_traits_xy_3, [`Project...
Read more

CGAL 5.5.2

28 Feb 18:08
v5.5.2
Compare
Choose a tag to compare

CGAL-5.5.2 is a bug-fix release.

See on Github the list of bugs that were solved since CGAL-5.5.1.

CGAL 5.4.4

28 Feb 18:09
v5.4.4
Compare
Choose a tag to compare

CGAL-5.4.4 is a bug-fix release.

See on Github the list of bugs that were solved since CGAL-5.4.3.