Maintenance/public_release/announcement/announcement-beta.md
The CGAL Open Source Project is pleased to announce the release 6.1 Beta 1 of CGAL, the Computational Geometry Algorithms Library.
CGAL version 6.1 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.1 in Sept 2025.
Besides fixes and general enhancement to existing packages, the following has changed since CGAL 6.0:
CGAL::make_conforming_constrained_Delaunay_triangulation_3().This package enables building and handling triangulations of closed orientable hyperbolic surfaces. It offers functions for the generation of the triangulation from a convex fundamental domain, the Delaunay flip algorithm, and the construction of a portion of the lift of the triangulation in the Poincaré disk. A method is offered that generates such domains in genus two.
See also the associated news entry.
Added the non-zero rule (areas with non-zero winding number are kept), as well as two functions to compute the conservative inner and outer hull of similar polygons:
See also the associated news entry.
apply_iterative_snap_rounding to the function CGAL::Polygon_mesh_processing::autorefine_triangle_soup(). When set to true, the coordinates are rounded to fit in double and may perform additional subdivisions to ensure the output is free of self-intersections. See also the associated news entry.CGAL::Polygon_mesh_processing::approximated_centroidal_Voronoi_diagram_remeshing() to remesh triangle meshes. This remeshing algorithm uses clustering on polygonal meshes as to approximate a Centroidal Voronoi Diagram construction, and can move vertices as to recover sharp features and corners. See also the associated news entry.CGAL::Polygon_mesh_processing::clip() and CGAL::Polygon_mesh_processing::split() with a plane as clipper that is much faster and is now able to handle non-triangulated surface meshes. See also the associated news entry.CGAL::Polygon_mesh_processing::refine_with_plane(), which enables users to refine a mesh with its intersection with a plane.CGAL::Polygon_mesh_processing::discrete_mean_curvature() and CGAL::Polygon_mesh_processing::discrete_Gaussian_curvature() to evaluate the discrete curvature at a vertex of a mesh.CGAL::Polygon_mesh_processing::angle_sum() to compute the sum of the angles around a vertex.CGAL::poisson_eliminate(), which can be used to downsample a point cloud to a target size while providing Poisson disk property, i.e., a larger minimal distance between points.dijkstra_shortest_path(), which can be used to compute the geometrically shortest sequence of halfedges between two vertices.CGAL::Euler::remove_degree_2_vertex(), which enables users to remove vertices which have exactly two incident edges.AosApproximateTraits_2 to AosApproximatePointTraits_2 to make room for the new concept AosApproximateTraits_2. This concept requires the provision of a functor called Approximate_2 that has an operator that approximates the coordinates of a point.AosApproximateTraits_2 now refines the concept AosApproximatePointTraits_2 and requires the provision of a functor called Approximate_2. In addition to an operator that approximates the coordinates of a point, it also requires the provision of (i) an operator that approximates a points, and (ii) an operator that approximates a curve.CGAL::Arr_tracing_traits_2 and CGAL::Arr_counting_traits_2, which can be used to extract debugging and informative metadata about the traits in use while a program is being executed.do_intersect() of a 2D Arrangement with a curve.point(Vertex_handle) and point(Simplex, int), which enables users to access the geometric position of a vertex and of the i-th vertex of a simplex of a triangulation.Poisson_mesh_domain_3 that integrates some optimizations from the deprecated 3D Surface Mesh Generation package.Constrained_triangulation_plus_2, the value type of the range returned by subconstraints() has changed from const std::pair<const Subconstraint, std::list<Context>*> to Subconstraint. The old range type is now returned by a new function named subconstraints_and_contexts().initial_points_generator: enables the user to specify a functor that generates initial points,initial_points: enables the user to specify a Range of initial points.surface_only, which can be used to improve performance when only surface mesh generation is sought.Poisson_mesh_domain_3, which should be used when generating a mesh from a Poisson surface obtained with the package Poisson Surface Reconstruction. This mesh domain re-integrates some optimizations for Poisson surface mesh generation that were lost when the package 3D Mesh Generation had to be replaced instead of the deprecated package 3D Surface Mesh Generation.CGAL::Subdivision_method_3::Loop_subdivision() and CGAL::Subdivision_method_3::CatmullClark_subdivision(), which enables users to subdivide a mesh without modifying its geometry.