CGAL 6.0
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 targetCGAL::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)
- The package implements a piece-wise planar surface reconstruction pipeline from point clouds combining methods from the Shape Detection, Shape Regularization and Kinetic Shape Partition packages and graph-cut to reconstruct surfaces from point clouds.
Basic Viewer (new package)
- The basic viewer package provides interactive visualization for most CGAL packages, such as 2D Arrangements, 2D Regularized Boolean Set-Operations, Linear Cell Complex, 3D Boolean Operations on Nef Polyhedra, 2D Periodic Triangulations, 3D Point Set, 2D Polygons, 3D Polyhedral Surface, 2D Straight Skeleton and Polygon Offsetting, Surface Mesh, 2D Triangulations, 3D Triangulations, 2D Voronoi Diagrams, and more. The most simple use case of the basic viewer is the call of the global
CGAL::draw()
function. There is one suchdraw()
function for each CGAL package that has a basic viewer. Such a call opens an interactive window showing the given model and allowing to navigate in the scene, show or hide some specific cells, show the interior of the model if any, etc. TheBasic_viewer
is based on Qt6.
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
withstd::variant
in the intersection functions. - Breaking change: Replaced all instances of
boost::optional
withstd::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)
- The AABB tree can now be used with 2D or 3D primitives:
- The concepts
AABBGeomTraits
andAABBRayIntersectionGeomTraits
have been replaced byAABBGeomTraits_3
and byAABBRayIntersectionGeomTraits_3
, respectively. - The concepts
AABBGeomTraits_2
andAABBRayIntersectionGeomTraits_2
have been introduced, as the 2D counterparts. - The class
CGAL::AABB_traits
is deprecated and replaced byCGAL::AABB_traits_3
. - The class
CGAL::AABB_traits_2
is introduced as the 2D counterpart. - The class
CGAL::AABB_segment_primitive
has been deprecated and replaced by the classCGAL::AABB_segment_primitive_3
. - The class
CGAL::AABB_triangle_primitive
has been deprecated and replaced by the classCGAL::AABB_triangle_primitive_3
. - The following 2D primitive classes have been added:
CGAL::AABB_segment_primitive_2
,CGAL::AABB_polyline_segment_primitive_2
,CGAL::AABB_triangle_primitive_2
,CGAL::AABB_indexed_triangle_primitive_2
.
- The concepts
- Breaking change: The concept
AABBTraits
now refines the conceptSearchTraits
. - Breaking change: Replaced all instances of
boost::optional
withstd::optional
.
2D Arrangements
- Breaking change: Replaced all instances of
boost::variant
withstd::variant
. - Breaking change: The type of the result of point location queries has been changed to
std::variant
. Support for the old macroCGAL_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 classCGAL::Arr_observer
was renamed toCGAL::Aos_observer
). - Introduced
Arr_dcel
, which essentially replaces the formerCGAL::Arr_default_dcel
. Backward compatibility was maintained by the introduction of the alias templateCGAL::Arr_default_dcel
.CGAL::Arr_dcel
, as opposed to the formerCGAL::Arr_default_dcel
is templated (in addition to the geometry traits) byVertex
,Halfedge
, andFace
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
inEnvelopeTraits_3
now usesstd::variant
instead ofCGAL::Object
. - Passed the base class of
CGAL::Env_plane_traits_3
as a template parameter with a default value (being the 2D arrangement linear traits). Similarly, passed the base class ofCGAL::Env_triangle_traits_3
as a template parameter with a default value (being the 2D arrangement segment traits).
Combinatorial Maps and Generalized Maps
- Added the function
insert_cell_1_between_two_cells_2()
to theGenericMap
concept, which enables users to insert an edge between two different faces in order to create faces with holes.
Quadtrees, Octrees, and Orthtrees
- Breaking change:
- Node splitting behavior and per-node data are now customizable via the Traits class.
- Nodes are now stored as a property map, with properties of each node accessed by index.
- Nearest neighbors functions only work for Orthtrees which provide the necessary functionality.
CGAL and the Boost Graph Library (BGL)
- Added the function
CGAL::remove_all_elements()
, which removes vertices, halfedges, and faces without collecting garbage and without removing properties. - Dynamic property maps can now have a default value.
- The class
CGAL::Face_filtered_graph
now supports patch IDs of any type and not justfaces_size_type
. The only requirement is that the type is hashable.
Polygon Mesh Processing
- Added the function
CGAL::Polygon_mesh_processing::autorefine_triangle_soup()
, which can be used to refine a soup of triangles such that no pair of triangles intersects in their interiors. Also added, the functionCGAL::Polygon_mesh_processing::autorefine()
operating directly on a triangle mesh and updating it using the aforementioned function on a triangle soup. - Added the class
CGAL::Corefinement::Non_manifold_output_visitor
, which can be used in corefinement based functions to deal with non-manifold outputs. - Added the option to use a variable sizing field for
CGAL::Polygon_mesh_processing::isotropic_remeshing()
, and a sizing function based on a measure of local curvature for adaptive remeshing. - Added the function
CGAL::Polygon_mesh_processing::interpolated_corrected_curvatures()
which can be used to compute the mean and Gaussian curvatures, as well as the principal curvature and directions. - Added the function
CGAL::Polygon_mesh_processing::refine_mesh_at_isolevel()
which can be used to refine a polygon mesh along an isocurve. - Added the function
CGAL::Polygon_mesh_processing::add_bbox()
, which enables adding a tight or extended, triangulated or not, bounding box to a face graph.
2D Triangulations
- Breaking change: the concept
TriangulationTraits_2
now requires an additional functorCompare_xy_2
.
3D Triangulations
- Added three member functions
vertices()
to the classCGAL::Triangulation_3
. Each of them returns an array containing the vertices of the given triangulation simplex.
dD Triangulations
- Breaking change:
CGAL::TDS_full_cell_mirror_storage_policy
is now unsupported in dimension larger than 127. - Breaking change: Inserting multiple unweighted points in the same position now keeps the first one, instead of switching to the latest. This only affects custom point types where not all points in the same position are equivalent.
Tetrahedral Remeshing
- Added a sizing field as new parameter of
CGAL::tetrahedral_isotropic_remeshing()
, which can be used to perform non-uniform and adaptive remeshing. - Breaking change: The template parameters of
CGAL::Tetrahedral_remeshing::Remeshing_cell_base_3
have been modified, reverting changes introduced in CGAL 5.6. - Breaking change: The vertex base of
CGAL::Tetrahedral_remeshing::Remeshing_vertex_base_3
must now be a model of the conceptSimplicialMeshVertexBase_3
(and not onlyTriangulationVertexBase_3
).
3D Simplicial Mesh Data Structure
- Breaking change: The template parameters of
CGAL::Simplicial_mesh_cell_base_3
have been modified to enable passing a geometric traits and a custom cell base class.
3D Mesh Generation
- Breaking change: Removed the concept
TriangleAccessor
, the template parameterTriangleAccessor
, as well as the classTriangle_accessor
. These were no longer used for several releases. - Breaking change: Removed the class templates
CGAL::Gray_image_mesh_domain_3
,CGAL::Implicit_mesh_domain_3
, andCGAL::Labeled_image_mesh_domain_3
, which were deprecated since CGAL-4.13. - Added new meshing criterion
edge_distance
, an upper bound for the distance from the edge to the 1D feature. - Breaking change: the concept
MeshEdgeCriteria_3
was modified to include the new meshing criterionedge_distance
.
3D Surface Mesh Generation
- This package is deprecated and the package 3D Mesh Generation should be used instead.
Surface Mesh Parameterization
- Breaking change: The method
CGAL::Surface_mesh_parameterization::LSCM_parameterizer_3
now requires the Eigen library. - Breaking change: CGAL no longer ships its own version of OpenNL.
Surface Mesh
- Breaking change: The return type of
CGAL::Surface_mesh::property_map()
has been changed tostd::optional
.
3D Point Set
- Breaking change: The return type of
CGAL::Point_set_3::property_map()
has been changed tostd::optional
.
Shape Detection
- Breaking change: Replaced all instances of
boost::shared_ptr
withstd::shared_ptr
.
2D Straight Skeleton and Polygon Offsetting
- Breaking change: Replaced all instances of
boost::shared_ptr
withstd::shared_ptr
. - Breaking change: Replaced all instances of
boost::optional
withstd::optional
.
What's Changed (generated by Github)...
- PSP: wlop_simplify() performance improvement by @afabri in #7497
- Offset Meshing Plugin Improvements by @MaelRL in #7508
- create a new CMake function CGAL_setup_CGAL_flags by @lrineau in #7512
- disable MSVC 2015 with CGAL 6.0 by @sloriot in #7519
- CGAL 6.0 requires c++17 by @sloriot in #7416
- EPECK Triangulation serialization by @sloriot in #7513
- Replace boost by std by @sloriot in #7403
- Add stop button for AW3 demo by @MaelRL in #7500
- Disable MSVC 2015 starting with CGAL 6.0 by @sloriot in #7538
- Add support for REUSE by @lrineau in #7568
- issue #7454 Consistency of BigO notations by @albert-github in #7571
- Spelling corrections by @albert-github in #7585
- Consistency of terms by @albert-github in #7591
- (Really) Disable MSVC 2015 starting with CGAL 6.0 by @sloriot in #7594
- Display property / Heat method plugins improvements by @MaelRL in #7539
- Add missing tests by @sloriot in #7556
- Classification: Workaround for VC++/std17/boost bug by @afabri in #7578
- Add unique simplex iterators for periodic triangulations by @MaelRL in #7586
- Possibility to disable special CGAL documentation setting by @albert-github in #7589
- Rephrase documentation of one-sided Haussdorff distance function by @MaelRL in #7596
- Bump fsfe/reuse-action from 1 to 2 by @dependabot in #7616
- Add
CGAL/version_checker.h
by @janetournois in #7528 - Edge insertion for CMap/GMap by @gdamiand in #7409
- Spelling corrections by @albert-github in #7624
- Fix connect infinite loop in heat method plugin by @MaelRL in #7605
- Minor improvements to the documentation of
PMP::orient_polygon_soup()
by @MaelRL in #7639 - Mesh_3: Improvements of the Documentation by @afabri in #7445
- Locate.h: Use Face_location / Barycentric_coordinates everywhere by @MaelRL in #7638
- Using c++17 standard library by @sloriot in #7526
- cgal_create_release_with_cmake.cmake: only call Git one by @lrineau in #7628
- Fix istream for optional by @sloriot in #7653
- SLS: Fix warnings by @afabri in #7561
- issue #7395 Improvement of layout of model relations by @albert-github in #7576
- Generalize documentation of Face_filtered_graph by @MaelRL in #7595
- Better showing of
#include
by @albert-github in #7648 - Arrangement: small doc fixes by @afabri in #7660
- Bump actions/checkout from 3 to 4 by @dependabot in #7709
- Fixes for vertex/cell classes of SMDS_3 and Tetrahedral_remeshing by @MaelRL in #7610
- Added missing reference to a paper in Heat method by @hoskillua in #7688
- Incorrect closing HTML comment by @albert-github in #7700
- issue #7701 Appearance of "Set of Faces" in documentation. by @albert-github in #7703
- issue #7702 Appearance of " Hilbert Sorting" in documentation. by @albert-github in #7705
- Polyhedron demo : meshing a segmented image and preserving color by @ange-clement in #7697
- Add an example on combining 3D Alpha Wrap and Tetrahedral Remeshing by @MaelRL in #7613
- Aos_2: bug-fix for arrangements of geodesic arcs on a sphere by @efifogel in #7644
- fix a typo in Tutorial_hello_world.txt by @CCXXXI in #7749
- Reformulate a cross product to increase precision by @MaelRL in #7732
- Polyhedron demo : dual contouring operation from isosurfacing_3 package by @ange-clement in #7745
- Bug fix in drawing of interior faces when the outer boundary is pinched by @gdamiand in #7751
- Add missing functions capacity and upper bound in dart_range for cmap and lcc with index by @gdamiand in #7752
- Correcting permanent redirect by @albert-github in #7763
- issue #7764 Reference to moka modeller by @albert-github in #7769
- Link to the 3mf specification by @albert-github in #7773
- Aos_2: doc fixes by @efifogel in #7713
- Box_intersection_d: Fix doc link by @afabri in #7717
- Bounding_volumes: Use Eigen library in demo by @afabri in #7725
- Added type cast to preprocess_weights() to avoid compilation error by @Kuprin2000 in #7726
- Polyhedron demo : Add clip box plugin support for more items by @ange-clement in #7737
- fix : iformat/oformat are in CGAL::IO by @lrineau in #7744
- issue #7767 Problem with the documenation of Mesh_3 by @albert-github in #7768
- Converting unoriented polygon soup to polygon mesh by @soesau in #7655
- Correcting stylesheet name by @albert-github in #7766
- issue #7774 Link to support funding of GUDHI project not found by @albert-github in #7776
- issue #7770 Non existing link to the LASLib / LAStools by @albert-github in #7778
- Remove double defgroup definition by @albert-github in #7786
- Mesh_3 Polyhedron demo : Added support for vtk images (vti format) by @ange-clement in #7729
- Mesh 3 : improved meshing with selected polylines by @ange-clement in #7750
- fix demo warnings by @sloriot in #7806
- No need for workaround for boost before version 1.47 by @albert-github in #7787
- issue #7765 Problem with Boost 1.54 and a non reachable ticket by @albert-github in #7777
- Replace hal related URLs by @afabri in #7811
- PMP: Remove documentation of deprecated code by @afabri in #7812
- Apollonius_graph: Make file names unique by @afabri in #7819
- Triangulation_2: Add () to function names in the User Manual by @afabri in #7802
- Fix wrong \ingroup statements by @afabri in #7804
- CGAL Lab: fix reading of VTK files by @lrineau in #7795
- Polyhedron demo - Use subdomain's color only when meshing from labeled images by @ange-clement in #7800
- Tetrahedral_remeshing - Doc improvements by @janetournois in #7801
- Filtered_kernel: Remove dead code by @afabri in #7810
- Kernel_23: Exploit Uncertain in collinear_3() by @afabri in #7822
- Mesh_3 - avoid a timeout in the testsuite by @janetournois in #7825
- Enhancing GitHub Actions Report with Clickable Links by @SaillantNicolas in #7861
- Fix general_polygon_example.png by @lbartoletti in #7728
- Defining a new resource directory to be used with doxygen master 1.10.0 by @albert-github in #7758
- Triangulation_3 - add
vertices()
helper functions by @janetournois in #7808 - Polyhedron demo : Fix bug in "Show cells not in complex" of a C3t3 by @ange-clement in #7831
- GSoC2022 - Interpolated Corrected Curvatures by @hoskillua in #6760
- Surface_mesh_approximation: Deal with boundary edges by @afabri in #7574
- PMP::isotropic_remeshing - add variable sizing field by @janetournois in #4891
- CGAL: Qt5 -> Qt6 by @afabri in #7397
- PMP - isotropic remeshing with sizing to CHANGES.md by @janetournois in #7887
- Aos_2 fixes, by Efi by @efifogel in #7841
- Scale_space_reconstruction: Doc Fixes by @afabri in #7843
- Patch usage of BUILD_TESTING to handle the case that CGAL is a subproject by @puneetmatharu in #7845
- Filtered_kernel: Add Power_side_of_oriented_power_circle_2.h by @afabri in #7849
- Bump actions/github-script from 6 to 7 by @dependabot in #7871
- Document exactness of constructions in Epick by @HoffmannMichael in #7412
- Mesh_3 - use
manifold()
andfacet_min_size
together by @janetournois in #7754 - Ipelet for k-nearest neighbor graph by @dfunke in #7783
- Parameterization: cleanup by @afabri in #7816
- Installation - fix
CGAL_ITK_support
by @janetournois in #7858 - Copy the buffer to allow modifications during iteration by @sloriot in #7902
- Improve add_toc_to_github_wiki_page.py by @lrineau in #7867
- PMP Examples: Unify type names by @afabri in #7879
- Spatial Searching: Add example storing triangulation vertices by @afabri in #7888
- Polyhedron demo - fix
DoubleEdit
by @janetournois in #7900 - Polyhedron demo - improve the Mesh_3 log by @janetournois in #7905
- Incorrect link to "Perturbations for Delaunay and weighted Delaunay 3D Triangulations" by @albert-github in #7906
- add function to refine a mesh along an isocurve by @sloriot in #5895
- Alpha wrapping: re-use and resume functionalities by @MaelRL in #7805
- Mesh_3 -
Mesh_criteria_3
cleaning by @janetournois in #7844 - Nef_S2: Move code to initializer list by @afabri in #7864
- Isotropic remeshing: add example with custom dummy sizing by @sloriot in #7873
- Shape Regularization: Documented missing dependency to OSQP when default solver is used by @soesau in #7895
- Stream_support: Add read_VTK() by @afabri in #7826
- Polyhedron Demo: Add sampling plugin by @afabri in #7910
- Add a convenience IO header by @MaelRL in #7929
- Tetrahedral remeshing - deal with c3t3 complex edges by @janetournois in #7909
- Tetrahedral remeshing - move sliver peeling to its own header file by @janetournois in #7930
- Add autorefine for triangle soup by @sloriot in #7614
- CGAL Lab: Transformation of point normals by @soesau in #7935
- Replace boost::mpl by @sloriot in #7813
- Surface_sweep_2: enhance the conic tests by @efifogel in #7950
- Autorefinement has its own license file by @sloriot in #7955
- Treeview missing due to missing setting in
header_package.html
by @albert-github in #7956 - Update Installation/README by @MaelRL in #7959
- Image_IO: sprintf -> snprintf by @afabri in #7961
- Fix license issues by @sloriot in #7962
- CGAL Lab: Rendering polygons with ghost edges by @soesau in #7898
- Try to fix link issues with qt6 resources by @sloriot in #7915
- Triangulation_2: Make IO save by changing file names by @afabri in #7957
- PMP/soup_autorefinement.cpp: Make sure we can read the file before continuing by @sloriot in #7974
- Fixes when neither LEDA nor GMP is available by @sloriot in #7960
- Kernel_d: Use integral_division() by @afabri in #7979
- Interpolated Curvature remaining TODOs by @hoskillua in #7919
- Introduce Arr_observer<Arrangement_2> by @efifogel in #7927
- Fix some demo bugs by @MaelRL in #7970
- Ease drawing of SDG duals by @afabri in #7976
- Update build scripts to use the number of available processors for parallel compilation by @SaillantNicolas in #7997
- Do not skip whitespace while reading quotient by @sloriot in #8000
- Add a hook CGAL_hook_fix_ctest_dependencies by @lrineau in #8003
- Warnings in documentation when running xmllint by @albert-github in #8014
- Incorrect layout bisector precondition by @albert-github in #8015
- Space before equal sign in ALIASES by @albert-github in #8016
- Point Set Processing: Remove documentation of deprecated functions by @afabri in #8017
- CGAL Lab: Fix rendering for degenerate polygons by @soesau in #8024
- Don't set the point again when reinserting the same point by @mglisse in #8022
- Aos_2, AABB_tree: Address warnings by @afabri in #8025
- Use 'if' rather than % by @mglisse in #8027
- Store index/dimension in 8 bits by @mglisse in #8028
- Set focus to the ok button by @sloriot in #8031
- Aos 2 fixes efif by @efifogel in #8013
- Call 3d static filters from NewKernel_d by @mglisse in #8026
- fix typo in comment by @agiust in #8039
- Create an automatic summary page with all warnings and errors for the testsuite by @SaillantNicolas in #8042
- Tetrahedral remeshing - add edge flips on surfaces by @janetournois in #6223
- Kernel_23: Add function squared_length() by @afabri in #8008
- Change inclusion order to check dependencies by @afabri in #8010
- Rename the action "Inside Out" to something more explicit by @lrineau in #8034
- Triangulation 2/3: fstream -> sstream by @afabri in #8036
- Envelope: Replace auto by @afabri in #8041
- Testsuite: Fix summary page link by @SaillantNicolas in #8046
reuse.yml
: callapt-get update
by @lrineau in #8047- Autorefinement: insert points in edge to avoid filter failures by @sloriot in #8023
- Tetrahedral_remeshing - add
vertex_is_constrained_map
to set input corners by @janetournois in #8040 - [[no_unique_address]] to compact Triangulation_ds_full_cell by @mglisse in #8045
- Bump fsfe/reuse-action from 2 to 3 by @dependabot in #8056
- be compatible with non-C++17 compilers by @sloriot in #8049
- Core: Use Expr::is_zero() of AST by @afabri in #8002
- Qt6: fix a bug with devicePixelRatio and picking by @lrineau in #8060
- CGAL Lab c3t3 item: fix a segfault by @lrineau in #8061
- Forward the VPM to polyline graph by @sloriot in #8070
- Polygon: Avoid stackoverflow when summing exact numbers by @afabri in #8052
- issue #8075 Documentation in Triangulation package by @albert-github in #8076
- Polygon repair by @kenohori in #7608
- Orthtree generalization by @JacksonCampolattaro in #7672
- CORE: Use boost::multiprecision::number API by @afabri in #6035
- Tetrahedral_remeshing -
peel_slivers()
by @janetournois in #8059 - Mesh_3 - fix mesher using the
one_step()
loop by @janetournois in #8072 - Clean CI log by @sloriot in #8105
- Algebraic_kernel_d: replace new/delete by @afabri in #8091
- add missing includes by @lrineau in #8095
- fix dependencies by @lrineau in #8096
- Improve information on exact nt backend by @sloriot in #8103
- Adding a default to dynamic property maps by @sloriot in #7712
- New function
PMP::add_bbox(face_graph)
that adds bbox to face graph by @janetournois in #8018 - Fix typos by @sloriot in #8118
- Polyline_simplification: fix documentation by @afabri in #8119
- GSoC'22: New CGAL's design to handle basic viewers by @gdamiand in #6967
- Fixed order of Qt6 components in find_package(Qt6 ....) by @efifogel in #8098
- CMake: simplify, now that C++17 is required by @lrineau in #8108
- Added missing headers by @efifogel in #8112
- Remove some needless dependencies by @MaelRL in #8121
- CGAL Lab by @lrineau in #8099
- CGAL::IO::Internal::read_OBJ(): allow arbitrary whitespace in "f" lines by @sxntxn in #7848
- Update wlop_simplify_and_regularize_point_set.h documentation by @mbartelsm in #8113
- Make triangulate_faces deterministic by @sloriot in #8129
- Access to property maps is const by @sloriot in #8135
- Mesh_3 - revert encroachment rule modification, and fix infinite refinement by @janetournois in #8139
- Introduce remove_all_elements(Graph) by @MaelRL in #7439
- Boolean Set Operations: Fix brief descriptions by @afabri in #8131
- Polygon_repair:: Use move semantics; Add Polygon_2::reserve() by @afabri in #8143
- Rename Polyhedron demo to CGAL Lab everywhere by @lrineau in #8149
- IO: Fix
OutputIteratorValueType
being ignored by @nh2 in #8155 - kd-tree: Deallocate Point pointer vector after build(). by @nh2 in #8156
- Gsoc2023, stand-alone interactive program that demonstrates 2D arrangements embedded on the sphere by @efifogel in #7678
- Updating the AABB-tree to work in both 2D and 3D by @sloriot in #8057
- Add extra parameters to the corefinement visitor to handle non-manifold output by @sloriot in #8142
- PMP::isotropic_remeshing() - add NP
allow move functor
by @janetournois in #8150 - Making the Spherical Guassian-map polyhedron a proper model of FaceGraph by @efifogel in #8153
- PMP corefinement: only allocate necessary bboxes by @sloriot in #8160
- Update parameter description by @sloriot in #8168
- CGAL Core : fix typos in code comments by @xiaoxianBoy in #8171
- Kernel_23: Fix Issue 8140 by @afabri in #8175
- Rename parameters by @sloriot in #8178
- Lab - Fix color from meshes with only one domain by @ange-clement in #8187
- Add some perfect forwarding in the Kernel by @sloriot in #7373
- Tet remeshing - add sizing field by @janetournois in #7830
- Polynomial: Add overload which is only documented by @afabri in #8189
- GMap doc fix by @gdamiand in #8199
- Testsuite: enhanced summary page with JSON generation and search functionality by @SaillantNicolas in #8127
- CORE: Accelerate writing to a stream if precision <= 17 by @afabri in #8179
- Polygon Repair: Add an example by @afabri in #8203
- Generator: Add example by @afabri in #8204
- Tet remeshing - missing typedefs by @janetournois in #8206
- Using std::optional for Property_container::get by @soesau in #8035
- Fix property map calls in the demo by @sloriot in #8225
- AoS_2, earth demo: find_package(nlohmann_json...) must be QUIET by @lrineau in #8220
- Mesh_3::Add handling of *.nii files in one example by @afabri in #7823
- CGAL Lab: Add a target CGALlab_compile_all_plugins by @lrineau in #8222
- Fix issue #8192 by @lrineau in #8221
- STL extension: Add a template argument to Prevent_deref for the value type by @afabri in #7410
- CGAL improvement backported from CDT_3 branch by @lrineau in #8170
- Surface_mesh: Add exact_num_faces(const SM&) by @afabri in #8215
- Prepare CGAL 6.0-beta1 by @lrineau in #8224
- Kinetic Shape Partition by @soesau in #7198
- Kinetic Surface Reconstruction by @soesau in #7908
- Mesh_3 edge_distance criterion : an upper bound for the distances of the feature edge to the input feature by @ange-clement in #7532
- Prepare CHANGES.md for 6.0 by @MaelRL in #8226
- Spelling correction by @albert-github in #8227
- CGAL Lab, Surface_mesh item: Fix using the fcolor pmap when there is no face color by @MaelRL in #8228
- [PSP3] Fixed typo for cmake include directory variable by @soesau in #8233
- Spelling checking bibliography by @albert-github in #8240
- Mesh_3 - update benchmark by @janetournois in #7883
- Fix CC selection in selection item by @MaelRL in #8238
- Mesh_3: add a scope after if(...) by @lrineau in #8241
- Triangulation on Sphere: Fix I/O by @afabri in #8201
- Spelling correction by @albert-github in #8243
- Add missing template parameter in the doc by @sloriot in #8245
- Spelling corrections by @albert-github in #8246
- Bug fix: definition of Self and Base in class Cell_attribute_with_point when using index. by @gdamiand in #8257
- Spelling correction by @albert-github in #8274
- deprecate Surface_mesher package by @sloriot in #8248
- cmake_minimum_required(VERSION 3.12...3.29) by @lrineau in #8263
- fix pylint warnings of generate_how_to_cite.py by @lrineau in #8264
- Mesh_3 - fix concept
MeshFacetCriteria_3
by @janetournois in #8268 - Fix iteration on dynamic bit set by @sloriot in #8272
- Spelling correction by @albert-github in #8281
- PMP: Change the string of the property by @afabri in #8277
- Forward the visitor for split by @sloriot in #8276
- Spelling correction by @albert-github in #8278
- Poisson: fix dependencies by @lrineau in #8282
- Remove thumbnails not used by @sloriot in #8286
- Fix clang/llvm 19 compilation issue in iterator.h (for 5.5.x-branch) by @lrineau in #8360
- Workaround missing links by @sloriot in #8365
- Be resilient to isolated vertices by @sloriot in #8367
- fix copy/paste error by @sloriot in #8371
- T3/T2/PT: Add namespace to classes in concepts by @afabri in #8283
- Shape_detection: Removing leftover from deprecated Shape_detection_traits by @soesau in #8301
- Fix clang/llvm 19 compilation issue in iterator.h (issue #8313) by @tylermorganwall in #8330
- issue #8323 Incorrect link to https://github.com/norlab-ulaval/libpointmatcher/blob/master/doc/CompilationWindows.md by @albert-github in #8324
- Incorrect link to book at msri by @albert-github in #8325
- Missing citation command by @albert-github in #8326
- Add Compare_angle_3 overload and missing global functions / doc by @MaelRL in #8337
- Fix initialization for partial hedge range by @sloriot in #8341
- issue #8334 Incorrect example in "Documentation/doc/Documentation/Developer_manual/create_and_use_a_cmakelist.txt" by @albert-github in #8342
- Remove extra macro definitions by @sloriot in #8370
- Improve generation of polylines by @sloriot in #8291
- Lab: Add an operation to create triangle faces from vertex selections by @MaelRL in #8294
- Spelling corrections by @albert-github in #8310
- issue #8318 Double bibliography reference by @albert-github in #8319
- Remove hardcoded extrastylesheet code by @albert-github in #8331
- Restore order of template parameters by @sloriot in #8366
- Remove file unused by @sloriot in #8368
- Pasto in TDS by @mglisse in #8349
- Tet remeshing - remove assertion in Adaptive sizing field by @janetournois in #8378
- Update CMakeLists.txt for recent VTK to fix CMake Warning by @janetournois in #8279
- Speed up copy_face_graph by @sloriot in #8380
- Use default surface topology criteria by @sloriot in #8409
- add validation for the range case by @sloriot in #8410
- Deal with duplicate lines by @afabri in #8396
- Move point cloud to the right directory by @sloriot in #8408
- Update to REUSE tools v4 by @lrineau in #8350
- Bump fsfe/reuse-action from 3 to 4 by @dependabot in #8343
- Shape_detection: using proper triangulated polygonal faces for linear_least_squares by @soesau in #8314
- TestSuite: Add condition to check if CXXFLAGS variable is empty by @SaillantNicolas in #8421
- run_doxygen_testsuite: fix SELinux contexts so that the web server can offer the files by @lrineau in #8432
- Avoid creating degenerate planes by @sloriot in #8416
- Fix for Line_3 Ray_3 do_intersect by @MaelRL in #8398
- Nef_3: Fix conversion to a FaceGraph by @afabri in #6727
- Remove outdated Qt version checks by @SaillantNicolas in #8402
- Mesh_3 - bug fixes for
edge_distance
andedge_min_size
by @janetournois in #8405 - reformat the REUSE.toml file (readability), add natvis files by @lrineau in #8431
- [PSR] Fixed example saving paths by @soesau in #8437
- Spelling corrections by @albert-github in #8451
- Pass random instance to GeneratorOnObject in Generic_random_point_generator for consistency by @chudonghao in #8420
- added test for formerly unused OutputIteratorValueType by @soesau in #8439
- simple fix to remove the segfault with Qt>=6.7 by @lrineau in #8453
- Ridges 3 bug fix doc pougetma by @pougetma in #8440
- Handle nested holes in convex decomposition by @sloriot in #8442
- Fix exception double free in Convex decomposition by @GilesBathgate in #8433
- Document boost mp as a possible gmp replacement by @sloriot in #8438
- Update CHANGES.md by @gdamiand in #8457
- Installation - update
FindOpenMesh.cmake
by @janetournois in #8332 - [PSP3] Adapting to new LASTools version (branch 5.5) by @soesau in #8448
- Fix conditional compilation by @sloriot in #8470
- [LASlib] Prevent usage of LASlib with msvc 2017 by @soesau in #8474
- [PSP3] OpenGR does not work with msvc2015 by @soesau in #8475
- [PSP3] Adapting to new LASTools version by @soesau in #8173
- Spelling corrections by @albert-github in #8481
- Testsuite: Add DEBUG/RELEASE build type to test result page by @SaillantNicolas in #8478
- remove config/script files moved to another git repo by @sloriot in #8493
- Incorrect documentation of color components in Stream_support by @albert-github in #8489
- Incorrect documentation for enums in Three package by @albert-github in #8487
- Correcting permanent redirect in Algebraic_kernel_d by @albert-github in #8486
- Remove double entry from bib file by @albert-github in #8494
- TestSuite: List of third-party libraries by @SaillantNicolas in #8254
- TESTSUITE: Extract cmake logs in testresults. by @SaillantNicolas in #8235
New Contributors (generated by Github)...
- @hoskillua made their first contribution in #7688
- @CCXXXI made their first contribution in #7749
- @Kuprin2000 made their first contribution in #7726
- @lbartoletti made their first contribution in #7728
- @puneetmatharu made their first contribution in #7845
- @agiust made their first contribution in #8039
- @kenohori made their first contribution in #7608
- @sxntxn made their first contribution in #7848
- @mbartelsm made their first contribution in #8113
- @xiaoxianBoy made their first contribution in #8171
- @tylermorganwall made their first contribution in #8330
- @chudonghao made their first contribution in #8420
- @pougetma made their first contribution in #8440
Full Changelog: v5.6.1...v6.0