CGAL 5.2 offers the following improvements and new functionality over CGAL 5.1:
Changelog
dD Geometry Kernel
- The kernels Epick_dandEpeck_dgain two new functors:Compute_power_product_dandConstruct_power_sphere_d, to deal with weighted points.
CGAL and the Boost Graph Library (BGL)
- Added a convenience header, CGAL/boost/graph/graph_traits_inheritance_macros.h, which enables easily making any class inheriting from a model of a face graph concept, a model of the same concept.
- Added the function can_add_face(), which tests whether a new face defined by a range of vertices can be added.
3D Fast Intersection and Distance Computation (AABB Tree)
- Added the move constructor and the assignment operator to the AABB Tree class.
2D Arrangements
- Replaced the use of legacy
CGAL::Objectto modernboost::variant.
- Changed make-x-monotone return type from legacy
CGAL::Objecttoboost::variantin all traits concepts and models. As there exists an implicit conversion fromboost::varianttoCGAL::Object, the new code is backward compatible. However, it is recommended that all calls to the make-x-monotone functions are fixed to use the new return type.
- Changed decompose()interface to useboost::variantinstead of legacyCGAL::ObjectAs explained above, the code is backward compatible. However, it is recommended that all calls todecompose()are fixed to use the new interface.
Surface Mesh
- Added the function clear_without_removing_property_maps()to clear a mesh but keep all the created property maps added.
- Added the functions remove_property_maps<Index_type>()andremove_all_property_maps()to remove all added property maps by index type or all of them respectively.
- Added the functions set_recycle_garbage()anddoes_recycle_garbage()to the classSurface_mesh.
Polygon Mesh Processing
- Added a visitor to the functions
CGAL::Polygon_mesh_processing::triangulate_face()andCGAL::Polygon_mesh_processing::triangulate_faces(), that enables the user to keep track of the newly created faces through the triangulation process.
- Added an option in CGAL::Polygon_mesh_processing::corefine(),CGAL::Polygon_mesh_processing::split()andCGAL::Polygon_mesh_processing::clip()functions, which enable the operations to be performed on a mesh with self-intersections present in the intersection area.
- Added an optional range parameter to CGAL::Polygon_mesh_processing::stitch_borders(), which can be used to specify which boundary cycles are eligible for stitching.
Surface Mesh Parameterization
- Added a new parameterization method, Iterative Authalic Parameterization. It is based on the work of Jain, Hardik, Manuel Wollhaf, and Olaf Hellwich, “Learning to Reconstruct Symmetric Shapes using Planar Parameterization of 3D Surface.” (IEEE International Conference on Computer Vision Workshops, 2019).
Classification
- 
      Breaking change: new IO format for the ETHZ::Random_Forestclassifier: a conversion function from the outdated format to the new one is provided.
- Added new functions to the class CGAL::Classification::Evaluation:append()to enrich the evaluation with additional results;confusion()to access the confusion matrix; output functions to save the evaluation to andASCIIorHTMLstream.
- Added a new operator, CGAL::Classification::feature_cast<>, for easy conversions.
- The classes CGAL::Classification::Feature_setandCGAL::Classification::Label_setare now models of the conceptRange.
- The class CGAL::Classification::Labelnow has attributesindex,standard_indexandcolor, with automatic selection if the ASPRS standard names are used.
- Added new functions in CGAL::Classification::Point_set_feature_iterator, to enable users to select which features should be generated.
- Added a new function, CGAL::Classification::Label_set::is_valid_ground_truth(), to help users check if a ground truth matches a given label set.
Point Set Processing
- Added a function CGAL::scanline_orient_normals(), which orients a point cloud by estimating a line of sight.
3D Convex Hulls
- Added the function CGAL::halfspace_intersection_interior_point_3(), which can be used to retrieve the point that is the most interior a convex closed volume defined by the intersection of a set of halfspaces.
3D Triangulations
- Added new classes and functions to visit the cells and simplices intersected by a line segment, see Sections Segment Cell Iterator and Segment Simplex Iterator, respectively.
