cgal

The public CGAL repository, see the README below

OTHER License

Downloads
3.6K
Stars
4.9K
Committers
279

Bot releases are hidden (Show)

cgal - CGAL 5.6.1 Latest Release

Published by lrineau 8 months ago

CGAL-5.6.1 is a bug-fix release.

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

cgal - CGAL 5.5.4

Published by lrineau 8 months ago

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 - CGAL 5.6

Published by lrineau about 1 year ago

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

  • 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, Projection_traits_xz_3, and Projection_traits_yz_3 instead.

2D Triangulations

2D Conforming Triangulations and Meshes

  • Added new overloads to the function write_VTU(), with property maps for specifying the domain.
  • Deprecated usage of boost parameters in favor of function named parameters in CGAL::lloyd_optimize_mesh_2().
  • Deprecated two overloads of the function refine_Delaunay_mesh(), and replaced them with versions using function named parameters.

2D Hyperbolic Triangulations

3D Simplicial Mesh Data Structure (new package)

Tetrahedral Remeshing

3D Mesh Generation

  • Added two new named parameters to the named constructor CGAL::create_labeled_image_mesh_domain() for automatic detection and protection of 1D-curves that lie at the intersection of three or more subdomains extracted from labeled images.
  • Added CGAL::Sizing_field_with_aabb_tree, a geometry-aware sizing field for feature edges in polyhedral domains.
  • Added new meshing criterion edge_min_size to avoid subdividing sharp edges that are shorter than a prescribed size bound.
  • Added new meshing criteria facet_min_size and cell_min_size to prevent Delaunay refinement from creating simplices smaller than a prescribed bound.
  • Deprecated usage of boost parameters in favor of function named parameters.

3D Periodic Mesh Generation

  • Periodic Mesh Generation now supports non-cubic domains.
  • Deprecated usage of boost parameters in favor of function named parameters.

Surface Mesh Simplification

2D Regularized Boolean Set Operations

Known Bug

  • MSVC 2015 is still supported by this version of CGAL, but the feature Segment Cell Iterator of the class CGAL::Triangulation_3 does not compile with MSVC 2015.
cgal - CGAL 5.5.3

Published by lrineau about 1 year ago

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 - CGAL 5.4.5

Published by lrineau about 1 year ago

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 - CGAL-5.6-beta1

Published by lrineau over 1 year ago

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, Projection_traits_xz_3, and Projection_traits_yz_3 instead.

2D Triangulations

2D Conforming Triangulations and Meshes

  • Added new overloads to the function write_VTU(), with property maps for specifying the domain.
  • Deprecated usage of boost parameters in favor of function named parameters in CGAL::lloyd_optimize_mesh_2().
  • Deprecated two overloads of the function refine_Delaunay_mesh(), and replaced them with versions using function named parameters.

2D Hyperbolic Triangulations

3D Simplicial Mesh Data Structure (new package)

3D Mesh Generation

  • Added two new named parameters to the named constructor CGAL::create_labeled_image_mesh_domain() for automatic detection and protection of 1D-curves that lie at the intersection of three or more subdomains extracted from labeled images.
  • Added CGAL::Sizing_field_with_aabb_tree, a geometry-aware sizing field for feature edges in polyhedral domains.
  • Added new meshing criterion edge_min_size to avoid subdividing sharp edges that are shorter than a prescribed size bound.
  • Added new meshing criteria facet_min_size and cell_min_size to prevent Delaunay refinement from creating simplices smaller than a prescribed bound.
  • Deprecated usage of boost parameters in favor of function named parameters.

3D Periodic Mesh Generation

  • Periodic Mesh Generation now supports non-cubic domains.
  • Deprecated usage of boost parameters in favor of function named parameters.

Surface Mesh Simplification

2D Regularized Boolean Set Operations

cgal - CGAL 5.4.4

Published by lrineau over 1 year ago

CGAL-5.4.4 is a bug-fix release.

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

cgal - CGAL 5.5.2

Published by lrineau over 1 year ago

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 - CGAL 5.5.1

Published by lrineau about 2 years ago

CGAL-5.5.1 is a bug-fix release.

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

cgal - CGAL 5.4.3

Published by lrineau about 2 years ago

CGAL-5.4.3 is a bug-fix release.

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

cgal - CGAL-5.5

Published by lrineau over 2 years ago

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

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

3D Alpha Wrapping (new package)

  • This component takes a 3D triangle mesh, soup, or point set as input, and generates a valid (watertight, intersection-free, and combinatorially 2-manifold) surface triangle mesh that contains the input.
    The algorithm proceeds by shrink-wrapping and refining a 3D Delaunay triangulation, starting from a loose bounding box of the input.
    Two user-defined parameters, alpha and offset, offer control over the maximum size of cavities where the shrink-wrapping process can enter, and the tightness of the final surface mesh to the input, respectively. Once combined, these parameters provide a means to trade fidelity
    to the input for complexity of the output.

    See also the announcement page.

2D Straight Skeleton and Polygon Offsetting (breaking change)

3D Convex Hulls

2D Polygons

  • Add vertex, edge, and hole ranges.
  • The concept GeneralPolygonWithHoles_2 now requires the nested type Polygon_2 instead of General_polygon_2.

2D Regularized Boolean Set-Operations

  • The concept GeneralPolygonSetTraits_2 now requires the nested type Construct_polygon_with_holes_2 instead of Construct_general_polygon_with_holes_2.

Combinatorial Maps

  • Removed old code deprecated in CGAL 4.9 and 4.10 (global functions, and information associated with darts).

2D Arrangements

  • Fixed the intersect_2, compare_y_at_x_right, and compare_y_at_x_left function objects of the traits class template Arr_geodesic_arc_on_sphere_traits_2 that handles geodesic arcs on sphere and applied a small syntactical fix to the tracing traits.

Tetrahedral Mesh Generation

Polygon Mesh Processing

Surface Mesh Simplification

Point Set Processing

  • A new optional named parameter, min_points_per_cell has been added to grid_simplify_point_set(). By adding a minimal number of points in a cell such that a point is retained, one can also filter out low density areas and outliers: in the case of densely sampled point clouds, this yields better results than using grid simplification and then outlier removal, while being very vast. The default value is 1 to keep the previous behavior as default.

dD Spatial Searching

  • Added the member function write_graphviz() to the class Kd_tree that writes the tree in a stream in the Graphviz format.

CGAL and the Boost Graph Library (BGL)

  • Added the function invert_selection() in the class Face_filtered_graph, which toggles the selected status of a graph: selected faces are deselected, and unselected faces are selected.
cgal - CGAL-5.4.2

Published by lrineau over 2 years ago

CGAL-5.4.2 is a bug-fix release.

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

cgal - CGAL-5.5-beta1

Published by lrineau over 2 years ago

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

CGAL version 5.5 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.5 in July 2022.

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

3D Alpha Wrapping (new package)

  • This component takes a 3D triangle mesh, soup, or point set as input, and generates a valid (watertight, intersection-free, and combinatorially 2-manifold) surface triangle mesh that contains the input.
    The algorithm proceeds by shrink-wrapping and refining a 3D Delaunay triangulation, starting from a loose bounding box of the input.
    Two user-defined parameters, alpha and offset, offer control over the maximum size of cavities where the shrink-wrapping process can enter, and the tightness of the final surface mesh to the input, respectively. Once combined, these parameters provide a means to trade fidelity
    to the input for complexity of the output.

    See also the announcement page.

3D Convex Hulls

2D Polygons

  • Add vertex, edge, and hole ranges.
  • The concept GeneralPolygonWithHoles_2 now requires the nested type Polygon_2 instead of General_polygon_2.

2D Regularized Boolean Set-Operations

  • The concept GeneralPolygonSetTraits_2 now requires the nested type Construct_polygon_with_holes_2 instead of Construct_general_polygon_with_holes_2.

Combinatorial Maps

  • Removed old code deprecated in CGAL 4.9 and 4.10 (global functions, and information associated with darts).

2D Arrangements

  • Fixed the intersect_2, compare_y_at_x_right, and compare_y_at_x_left function objects of the traits class template Arr_geodesic_arc_on_sphere_traits_2 that handles geodesic arcs on sphere and applied a small syntactical fix to the tracing traits.

Tetrahedral Mesh Generation

Polygon Mesh Processing

Surface Mesh Simplification

Point Set Processing

  • A new optional named parameter, min_points_per_cell has been added to grid_simplify_point_set(). By adding a minimal number of points in a cell such that a point is retained, one can also filter out low density areas and outliers: in the case of densely sampled point clouds, this yields better results than using grid simplification and then outlier removal, while being very vast. The default value is 1 to keep the previous behavior as default.

dD Spatial Searching

  • Added the member function write_graphviz() to the class Kd_tree that writes the tree in a stream in the Graphviz format.

CGAL and the Boost Graph Library (BGL)

  • Added the function invert_selection() in the class Face_filtered_graph, which toggles the selected status of a graph: selected faces are deselected, and unselected faces are selected.
cgal - CGAL-5.4.1

Published by lrineau over 2 years ago

CGAL-5.4.1 is a bug-fix release.

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

cgal - CGAL-5.3.2

Published by lrineau over 2 years ago

CGAL-5.3.2 is a bug-fix release.

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

cgal - CGAL-5.4

Published by lrineau over 2 years ago

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

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

General changes

  • Added the cmake target CGAL::CGAL_Basic_viewer to ease the compilation of programs using the basic viewer-based function CGAL::draw(). This target will define the macro and link with CGAL_Qt5 target when linked with it.

  • The kernel providing exact constructions and exact predicates (CGAL::Exact_predicates_exact_constructions_kernel) is now thread-safe. See changes in 2D and 3D Linear Geometry Kernel for more details.

  • The class Geomview_stream and all the dependent features have been removed from CGAL. Those features were actually no longer supported since CGAL-5.3 but it was not properly announced.

Shape Regularization (new package)

  • This package enables to regularize a set of segments and open or closed contours in 2D and a set of planes in 3D such that all input objects are rotated and aligned with respect to the user-specified conditions. In addition, it provides a global regularization framework that can be adjusted for the user needs and any type of geometric objects.

Weights (new package)

  • This package provides a simple and unified interface to different types of weights. In particular, it groups all weights into three category: analytic weights including all basic weights which can be computed analytically for a query point with respect to its local neighbors in 2D and 3D; barycentric weights, including all weights which can be computed for a query point with respect to the vertices of a planar polygon; and weighting regions, including all weights which are used to balance other weights.

2D Generalized Barycentric Coordinates (major changes)

2D and 3D Linear Geometry Kernel

dD Kernel

  • Most operations on Epeck_d objects are now thread-safe, see 2D and 3D Linear Geometry Kernel for details.

2D Arrangements

  • Breaking Change: The traits function objects Compare_x_at_limit_2 and Compare_x_near_limit_2 are renamed to Compare_x_on_boundary_2 and Compare_x_near_boundary_2, respectively.

  • A new hierarchy of traits concepts has been introduced. It captures all the valid combinations of boundary conditions for the 4 boundary sides of the parameter space. The 4 boundaries are Bottom, Top, Left, and Right. Each boundary side can be either contracted, identified, close, open, or oblivious. Not all possible combinations are valid. If one side is identified then the other must be as well. Two adjacent sides cannot be contracted.

  • A new geometric traits, Arr_geodesic_arc_on_sphere_traits_2 has been introduced. It handles arcs of great circles embedded on the unit sphere.

2D Regularized Boolean Set-Operations

3D Mesh Generation

Polygon Mesh Processing

The Heat Method

  • Breaking change: Added the functor Compute_squared_length_3 providing operator(const Vector_3& v), which computes the squared length of v, to the HeatMethodTraits_3 concept.

Point Set Processing

Shape Detection

  • Added new shapes to the Region Growing algorithm on a point set: circles in 2D, spheres in 3D, and cylinders in 3D.

CGAL and Solvers

  • Added support for the OSQP solver. This solver enables to efficiently compute the convex Quadratic Programming (QP) problems arising in the context of several packages.
cgal - CGAL-5.4-beta1

Published by lrineau almost 3 years ago

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

CGAL version 5.4 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.4 in January 2022.

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

General changes

  • Added the cmake target CGAL::CGAL_Basic_viewer to ease the compilation of programs using the basic viewer-based function CGAL::draw(). This target will define the macro and link with CGAL_Qt5 target when linked with it.

  • The kernel providing exact constructions and exact predicates (CGAL::Exact_predicates_exact_constructions_kernel) is now thread-safe. See changes in 2D and 3D Linear Geometry Kernel for more details.

Shape Regularization (new package)

  • This package enables to regularize a set of segments and open or closed contours in 2D and a set of planes in 3D such that all input objects are rotated and aligned with respect to the user-specified conditions. In addition, it provides a global regularization framework that can be adjusted for the user needs and any type of geometric objects.

Weights (new package)

  • This package provides a simple and unified interface to different types of weights. In particular, it groups all weights into three category: analytic weights including all basic weights which can be computed analytically for a query point with respect to its local neighbors in 2D and 3D; barycentric weights, including all weights which can be computed for a query point with respect to the vertices of a planar polygon; and weighting regions, including all weights which are used to balance other weights.

2D Generalized Barycentric Coordinates (major changes)

2D and 3D Linear Geometry Kernel

dD Kernel

  • Most operations on Epeck_d objects are now thread-safe, see 2D and 3D Linear Geometry Kernel for details.

2D Arrangements

  • Breaking Change: The traits function objects Compare_x_at_limit_2 and Compare_x_near_limit_2 are renamed to Compare_x_on_boundary_2 and Compare_x_near_boundary_2, respectively.

  • A new hierarchy of traits concepts has been introduced. It captures all the valid combinations of boundary conditions for the 4 boundary sides of the parameter space. The 4 boundaries are Bottom, Top, Left, and Right. Each boundary side can be either contracted, identified, close, open, or oblivious. Not all possible combinations are valid. If one side is identified then the other must be as well. Two adjacent sides cannot be contracted.

  • A new geometric traits, Arr_geodesic_arc_on_sphere_traits_2 has been introduced. It handles arcs of great circles embedded on the unit sphere.

2D Regularized Boolean Set-Operations

3D Mesh Generation

Polygon Mesh Processing

The Heat Method

  • Breaking change: Added the functor Compute_squared_length_3 providing operator(const Vector_3& v), which computes the squared length of v, to the HeatMethodTraits_3 concept.

Point Set Processing

Shape Detection

  • Added new shapes to the Region Growing algorithm on a point set: circles in 2D, spheres in 3D, and cylinders in 3D.

CGAL and Solvers

  • Added support for the OSQP solver. This solver enables to efficiently compute the convex Quadratic Programming (QP) problems arising in the context of several packages.
cgal - CGAL-5.3.1

Published by lrineau almost 3 years ago

CGAL-5.3.1 is a bug-fix release.

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

cgal - CGAL-5.2.4

Published by lrineau almost 3 years ago

CGAL-5.2.4 is a bug-fix release.

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

cgal - CGAL-5.3

Published by lrineau over 3 years ago

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

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

General changes

  • The support for the compiled version of CGAL is dropped. Only the header-only version is supported.

  • On Windows, the type used for Exact_rational, in Epick and indirectly (through Lazy_exact_nt)
    Epeck may now be boost::multiprecision::mpq_rational, as has been the case on other platforms
    for several releases. This depends on various options and is added to a list that includes
    mpq_class, CGAL::Gmpq, leda_rational and CGAL::Quotient<CGAL::MP_Float>.

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.

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.

File Input / Output

  • Point set, polygon soup, and polygon mesh file I/O functions have been harmonized and documented:

A comprehensive list of the supported file formats is available in the Stream_support package here; inversely, the following page can be used to find out which CGAL data structures can be used given a specific file format.

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

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

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.
Package Rankings
Top 8.17% on Proxy.golang.org
Top 4.29% on Pypi.org
Related Projects