The public CGAL repository, see the README below
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 is a bug-fix release.
See on Github the list of bugs that were solved since CGAL-5.5.3.
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:
CGAL_triangulation_assertion
) have been removed. Corresponding CGAL-wide versions (such as CGAL_assertion
) should be used instead.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.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.RegionType
for getting linear regions in a set of 2D and 3D segments and on 2D and 3D polylines.Polyline_graph
for extracting a set of polylines from a face graph, which splits this graph into a set of user-defined regions.CompareAngle_3
to the concept Kernel
to compare an angle defined by three points to the cosinus of another angle.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_incremental_builder_3
.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.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.Added functions CGAL::Polygon_mesh_processing::region_growing_of_planes_on_faces()
and CGAL::Polygon_mesh_processing::detect_corners_of_regions()
, which enable partitioning a mesh into planar regions using the region growing algorithm from the Shape Detection package.
Added the functions CGAL::Polygon_mesh_processing::remesh_planar_patches()
and CGAL::Polygon_mesh_processing::remesh_almost_planar_patches()
, which can be used to remesh patches of coplanar faces in a mesh.
Added the function CGAL::Polygon_mesh_processing::surface_Delaunay_remeshing()
, which can be used to remesh a surface triangle mesh using the Delaunay refinement algorithm from the 3D Mesh Generation package.
Added the function CGAL::Polygon_mesh_processing::remove_almost_degenerate_faces()
, which can be used to remove badly shaped triangles faces in a mesh.
Added the functions CGAL::Polygon_mesh_processing::does_triangle_soup_self_intersect()
and CGAL::Polygon_mesh_processing::triangle_soup_self_intersections()
to identify and report self-intersections in a triangle soup, similarly to existing functions on triangle meshes.
Added the function CGAL::Polygon_mesh_processing::triangulate_polygons()
, which allows users to triangulate polygon soups.
Added a named parameter to CGAL::Polygon_mesh_processing::smooth_shape()
to disable the scaling, which otherwise aims to compensate volume loss during smoothing.
Deprecated the overloads of functions CGAL::Polygon_mesh_processing::triangulate_hole()
, CGAL::Polygon_mesh_processing::triangulate_and_refine_hole()
, and CGAL::Polygon_mesh_processing::triangulate_refine_and_fair_hole()
which have output iterators for vertices and faces as parameter. They are replaced by overloads with two additional named parameters.
ConvexHullTraits_2
no longer requires the functor Less_signed_distance_to_line_2
, but requires the functor Compare_signed_distance_to_line_2
instead.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.CGAL::mark_domain_in_triangulation()
to mark faces connected with non-constrained edges as inside of the domain based on the nesting level.write_VTU()
, with property maps for specifying the domain.CGAL::lloyd_optimize_mesh_2()
.refine_Delaunay_mesh()
, and replaced them with versions using function named parameters.HyperbolicTriangulationFaceBase_2
has been modified to better reflect the triangulation's requirements and avoid a conflict with the requirements described by the concept TriangulationDataStructure_2::Face
. The model CGAL::Hyperbolic_triangulation_face_base_2
has been adapted correspondingly.MeshComplex_3InTriangulation_3
to describe 3D simplicial meshes, and makes the data structure independent from the tetrahedral mesh generation package.CGAL::Tetrahedral_remeshing::Remeshing_vertex_base_3
and CGAL::Tetrahedral_remeshing::Remeshing_cell_base_3
have been modified.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.CGAL::Sizing_field_with_aabb_tree
, a geometry-aware sizing field for feature edges in polyhedral domains.edge_min_size
to avoid subdividing sharp edges that are shorter than a prescribed size bound.facet_min_size
and cell_min_size
to prevent Delaunay refinement from creating simplices smaller than a prescribed bound.Count_stop_predicate
and Count_ratio_stop_predicate
are renamed to Edge_count_stop_predicate
and Edge_count_ratio_stop_predicate
. Older versions have been deprecated.Face_count_stop_predicate
and Face_count_ratio_stop_predicate
, which can be used to stop the simplification algorithm based on a desired number of faces in the output, or a ratio between input and output face numbers.GeneralPolygonWithHoles_2
concept (e.g., clear_outer_boundary()
, clear_holes()
, and clear()
).CGAL::Triangulation_3
does not compile with MSVC 2015.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 is a bug-fix release.
See on Github the list of bugs that were solved since CGAL-5.4.4.
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:
CGAL_triangulation_assertion
) have been removed. Corresponding CGAL-wide versions (such as CGAL_assertion
) should be used instead.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.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.RegionType
for getting linear regions in a set of 2D and 3D segments and on 2D and 3D polylines.Polyline_graph
for extracting a set of polylines from a face graph, which splits this graph into a set of user-defined regions.CompareAngle_3
to the concept Kernel
to compare an angle defined by three points to the cosinus of another angle.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_incremental_builder_3
.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.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.Added functions CGAL::Polygon_mesh_processing::region_growing_of_planes_on_faces()
and CGAL::Polygon_mesh_processing::detect_corners_of_regions()
, which enable partitioning a mesh into planar regions using the region growing algorithm from the Shape Detection package.
Added the functions CGAL::Polygon_mesh_processing::remesh_planar_patches()
and CGAL::Polygon_mesh_processing::remesh_almost_planar_patches()
, which can be used to remesh patches of coplanar faces in a mesh.
Added the function CGAL::Polygon_mesh_processing::surface_Delaunay_remeshing()
, which can be used to remesh a surface triangle mesh using the Delaunay refinement algorithm from the 3D Mesh Generation package.
Added the function CGAL::Polygon_mesh_processing::remove_almost_degenerate_faces()
, which can be used to remove badly shaped triangles faces in a mesh.
Added the functions CGAL::Polygon_mesh_processing::does_triangle_soup_self_intersect()
and CGAL::Polygon_mesh_processing::triangle_soup_self_intersections()
to identify and report self-intersections in a triangle soup, similarly to existing functions on triangle meshes.
Added the function CGAL::Polygon_mesh_processing::triangulate_polygons()
, which allows users to triangulate polygon soups.
Added a named parameter to CGAL::Polygon_mesh_processing::smooth_shape()
to disable the scaling, which otherwise aims to compensate volume loss during smoothing.
Deprecated the overloads of functions CGAL::Polygon_mesh_processing::triangulate_hole()
, CGAL::Polygon_mesh_processing::triangulate_and_refine_hole()
, and CGAL::Polygon_mesh_processing::triangulate_refine_and_fair_hole()
which have output iterators for vertices and faces as parameter. They are replaced by overloads with two additional named parameters.
ConvexHullTraits_2
no longer requires the functor Less_signed_distance_to_line_2
, but requires the functor Compare_signed_distance_to_line_2
instead.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.CGAL::mark_domain_in_triangulation()
to mark faces connected with non-constrained edges as inside of the domain based on the nesting level.write_VTU()
, with property maps for specifying the domain.CGAL::lloyd_optimize_mesh_2()
.refine_Delaunay_mesh()
, and replaced them with versions using function named parameters.HyperbolicTriangulationFaceBase_2
has been modified to better reflect the triangulation's requirements and avoid a conflict with the requirements described by the concept TriangulationDataStructure_2::Face
. The model CGAL::Hyperbolic_triangulation_face_base_2
has been adapted correspondingly.MeshComplex_3InTriangulation_3
to describe 3D simplicial meshes, and makes the data structure independent from the tetrahedral mesh generation package.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.CGAL::Sizing_field_with_aabb_tree
, a geometry-aware sizing field for feature edges in polyhedral domains.edge_min_size
to avoid subdividing sharp edges that are shorter than a prescribed size bound.facet_min_size
and cell_min_size
to prevent Delaunay refinement from creating simplices smaller than a prescribed bound.Count_stop_predicate
and Count_ratio_stop_predicate
are renamed to Edge_count_stop_predicate
and Edge_count_ratio_stop_predicate
. Older versions have been deprecated.Face_count_stop_predicate
and Face_count_ratio_stop_predicate
, which can be used to stop the simplification algorithm based on a desired number of faces in the output, or a ratio between input and output face numbers.GeneralPolygonWithHoles_2
concept (e.g., clear_outer_boundary()
, clear_holes()
, and clear()
).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-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.5.1 is a bug-fix release.
See on Github the list of bugs that were solved since CGAL-5.5.
CGAL-5.4.3 is a bug-fix release.
See on Github the list of bugs that were solved since CGAL-5.4.2.